@velion-la/onboarding-sdk-react-native 1.0.0-beta.2

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 (557) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/LICENSE +12 -0
  3. package/README.md +803 -0
  4. package/lib/commonjs/camera/AddressSearchBar.js +304 -0
  5. package/lib/commonjs/camera/AddressSearchBar.js.map +1 -0
  6. package/lib/commonjs/camera/DocumentCapture.js +505 -0
  7. package/lib/commonjs/camera/DocumentCapture.js.map +1 -0
  8. package/lib/commonjs/camera/LivenessCamera.js +534 -0
  9. package/lib/commonjs/camera/LivenessCamera.js.map +1 -0
  10. package/lib/commonjs/camera/MapAddressPicker.js +341 -0
  11. package/lib/commonjs/camera/MapAddressPicker.js.map +1 -0
  12. package/lib/commonjs/core/VelionOnboarding.js +815 -0
  13. package/lib/commonjs/core/VelionOnboarding.js.map +1 -0
  14. package/lib/commonjs/core/sessionDeclinedCopy.js +56 -0
  15. package/lib/commonjs/core/sessionDeclinedCopy.js.map +1 -0
  16. package/lib/commonjs/core/sessionStateMapper.js +137 -0
  17. package/lib/commonjs/core/sessionStateMapper.js.map +1 -0
  18. package/lib/commonjs/core/sseReasonMessages.js +450 -0
  19. package/lib/commonjs/core/sseReasonMessages.js.map +1 -0
  20. package/lib/commonjs/data/iso3166Alpha2Codes.json +1 -0
  21. package/lib/commonjs/data/iso3166CountryNames.json +251 -0
  22. package/lib/commonjs/i18n/index.js +30 -0
  23. package/lib/commonjs/i18n/index.js.map +1 -0
  24. package/lib/commonjs/i18n/strings/en.js +261 -0
  25. package/lib/commonjs/i18n/strings/en.js.map +1 -0
  26. package/lib/commonjs/i18n/strings/es.js +266 -0
  27. package/lib/commonjs/i18n/strings/es.js.map +1 -0
  28. package/lib/commonjs/index.js +213 -0
  29. package/lib/commonjs/index.js.map +1 -0
  30. package/lib/commonjs/package.json +1 -0
  31. package/lib/commonjs/steps/AddressInfoStep.js +650 -0
  32. package/lib/commonjs/steps/AddressInfoStep.js.map +1 -0
  33. package/lib/commonjs/steps/DocumentsOcrStep.js +397 -0
  34. package/lib/commonjs/steps/DocumentsOcrStep.js.map +1 -0
  35. package/lib/commonjs/steps/EmailContactStep.js +145 -0
  36. package/lib/commonjs/steps/EmailContactStep.js.map +1 -0
  37. package/lib/commonjs/steps/EmailOtpStep.js +220 -0
  38. package/lib/commonjs/steps/EmailOtpStep.js.map +1 -0
  39. package/lib/commonjs/steps/FaceMatchStep.js +166 -0
  40. package/lib/commonjs/steps/FaceMatchStep.js.map +1 -0
  41. package/lib/commonjs/steps/FingerprintStep.js +92 -0
  42. package/lib/commonjs/steps/FingerprintStep.js.map +1 -0
  43. package/lib/commonjs/steps/HumanBasicInfoStep.js +243 -0
  44. package/lib/commonjs/steps/HumanBasicInfoStep.js.map +1 -0
  45. package/lib/commonjs/steps/HumanExtendedInfoStep.js +268 -0
  46. package/lib/commonjs/steps/HumanExtendedInfoStep.js.map +1 -0
  47. package/lib/commonjs/steps/LegalBasicInfoStep.js +188 -0
  48. package/lib/commonjs/steps/LegalBasicInfoStep.js.map +1 -0
  49. package/lib/commonjs/steps/LegalExtendedInfoStep.js +166 -0
  50. package/lib/commonjs/steps/LegalExtendedInfoStep.js.map +1 -0
  51. package/lib/commonjs/steps/LivenessMatchStep.js +707 -0
  52. package/lib/commonjs/steps/LivenessMatchStep.js.map +1 -0
  53. package/lib/commonjs/steps/PhoneContactStep.js +146 -0
  54. package/lib/commonjs/steps/PhoneContactStep.js.map +1 -0
  55. package/lib/commonjs/steps/PhoneOtpStep.js +219 -0
  56. package/lib/commonjs/steps/PhoneOtpStep.js.map +1 -0
  57. package/lib/commonjs/steps/SwornDeclarationStep.js +196 -0
  58. package/lib/commonjs/steps/SwornDeclarationStep.js.map +1 -0
  59. package/lib/commonjs/steps/TaxInfoStep.js +244 -0
  60. package/lib/commonjs/steps/TaxInfoStep.js.map +1 -0
  61. package/lib/commonjs/steps/TermsAndConditionsStep.js +238 -0
  62. package/lib/commonjs/steps/TermsAndConditionsStep.js.map +1 -0
  63. package/lib/commonjs/steps/_shared.js +40 -0
  64. package/lib/commonjs/steps/_shared.js.map +1 -0
  65. package/lib/commonjs/steps/types.js +6 -0
  66. package/lib/commonjs/steps/types.js.map +1 -0
  67. package/lib/commonjs/transport/api.js +176 -0
  68. package/lib/commonjs/transport/api.js.map +1 -0
  69. package/lib/commonjs/transport/irisWebSocket.js +121 -0
  70. package/lib/commonjs/transport/irisWebSocket.js.map +1 -0
  71. package/lib/commonjs/transport/secureUrl.js +50 -0
  72. package/lib/commonjs/transport/secureUrl.js.map +1 -0
  73. package/lib/commonjs/transport/sse.js +248 -0
  74. package/lib/commonjs/transport/sse.js.map +1 -0
  75. package/lib/commonjs/types/index.js +391 -0
  76. package/lib/commonjs/types/index.js.map +1 -0
  77. package/lib/commonjs/ui/MapFallbackBoundary.js +42 -0
  78. package/lib/commonjs/ui/MapFallbackBoundary.js.map +1 -0
  79. package/lib/commonjs/ui/StepShell.js +118 -0
  80. package/lib/commonjs/ui/StepShell.js.map +1 -0
  81. package/lib/commonjs/ui/VelionOnboardingScreen.js +217 -0
  82. package/lib/commonjs/ui/VelionOnboardingScreen.js.map +1 -0
  83. package/lib/commonjs/ui/forms/index.js +38 -0
  84. package/lib/commonjs/ui/forms/index.js.map +1 -0
  85. package/lib/commonjs/ui/forms/useInlineValidation.js +88 -0
  86. package/lib/commonjs/ui/forms/useInlineValidation.js.map +1 -0
  87. package/lib/commonjs/ui/forms/validators.js +34 -0
  88. package/lib/commonjs/ui/forms/validators.js.map +1 -0
  89. package/lib/commonjs/ui/icons/HomeHeartIcon.js +38 -0
  90. package/lib/commonjs/ui/icons/HomeHeartIcon.js.map +1 -0
  91. package/lib/commonjs/ui/icons/StepIcon.js +59 -0
  92. package/lib/commonjs/ui/icons/StepIcon.js.map +1 -0
  93. package/lib/commonjs/ui/overlays/AnalyzingOverlay.js +284 -0
  94. package/lib/commonjs/ui/overlays/AnalyzingOverlay.js.map +1 -0
  95. package/lib/commonjs/ui/overlays/LoadingOverlay.js +108 -0
  96. package/lib/commonjs/ui/overlays/LoadingOverlay.js.map +1 -0
  97. package/lib/commonjs/ui/overlays/ProgressBar.js +95 -0
  98. package/lib/commonjs/ui/overlays/ProgressBar.js.map +1 -0
  99. package/lib/commonjs/ui/overlays/RetryDialog.js +125 -0
  100. package/lib/commonjs/ui/overlays/RetryDialog.js.map +1 -0
  101. package/lib/commonjs/ui/overlays/index.js +33 -0
  102. package/lib/commonjs/ui/overlays/index.js.map +1 -0
  103. package/lib/commonjs/ui/primitives/Banner.js +81 -0
  104. package/lib/commonjs/ui/primitives/Banner.js.map +1 -0
  105. package/lib/commonjs/ui/primitives/Button.js +142 -0
  106. package/lib/commonjs/ui/primitives/Button.js.map +1 -0
  107. package/lib/commonjs/ui/primitives/Card.js +50 -0
  108. package/lib/commonjs/ui/primitives/Card.js.map +1 -0
  109. package/lib/commonjs/ui/primitives/Checkbox.js +139 -0
  110. package/lib/commonjs/ui/primitives/Checkbox.js.map +1 -0
  111. package/lib/commonjs/ui/primitives/CountrySelect.js +288 -0
  112. package/lib/commonjs/ui/primitives/CountrySelect.js.map +1 -0
  113. package/lib/commonjs/ui/primitives/DatePicker.js +245 -0
  114. package/lib/commonjs/ui/primitives/DatePicker.js.map +1 -0
  115. package/lib/commonjs/ui/primitives/Input.js +101 -0
  116. package/lib/commonjs/ui/primitives/Input.js.map +1 -0
  117. package/lib/commonjs/ui/primitives/Select.js +209 -0
  118. package/lib/commonjs/ui/primitives/Select.js.map +1 -0
  119. package/lib/commonjs/ui/primitives/Spinner.js +25 -0
  120. package/lib/commonjs/ui/primitives/Spinner.js.map +1 -0
  121. package/lib/commonjs/ui/primitives/index.js +69 -0
  122. package/lib/commonjs/ui/primitives/index.js.map +1 -0
  123. package/lib/commonjs/ui/theme/ThemeProvider.js +74 -0
  124. package/lib/commonjs/ui/theme/ThemeProvider.js.map +1 -0
  125. package/lib/commonjs/ui/theme/index.js +68 -0
  126. package/lib/commonjs/ui/theme/index.js.map +1 -0
  127. package/lib/commonjs/ui/theme/tokens.js +154 -0
  128. package/lib/commonjs/ui/theme/tokens.js.map +1 -0
  129. package/lib/commonjs/utils/EventEmitter.js +144 -0
  130. package/lib/commonjs/utils/EventEmitter.js.map +1 -0
  131. package/lib/commonjs/utils/base64.js +53 -0
  132. package/lib/commonjs/utils/base64.js.map +1 -0
  133. package/lib/commonjs/utils/deviceFingerprint.js +132 -0
  134. package/lib/commonjs/utils/deviceFingerprint.js.map +1 -0
  135. package/lib/commonjs/utils/documentTypeOptions.js +35 -0
  136. package/lib/commonjs/utils/documentTypeOptions.js.map +1 -0
  137. package/lib/commonjs/utils/googleMapsPreflight.js +77 -0
  138. package/lib/commonjs/utils/googleMapsPreflight.js.map +1 -0
  139. package/lib/commonjs/utils/hmac.js +58 -0
  140. package/lib/commonjs/utils/hmac.js.map +1 -0
  141. package/lib/commonjs/utils/iso3166Countries.js +98 -0
  142. package/lib/commonjs/utils/iso3166Countries.js.map +1 -0
  143. package/lib/commonjs/utils/jpegFromUri.js +44 -0
  144. package/lib/commonjs/utils/jpegFromUri.js.map +1 -0
  145. package/lib/commonjs/utils/keepAwake.js +58 -0
  146. package/lib/commonjs/utils/keepAwake.js.map +1 -0
  147. package/lib/commonjs/utils/log.js +42 -0
  148. package/lib/commonjs/utils/log.js.map +1 -0
  149. package/lib/commonjs/utils/osGeocoder.js +70 -0
  150. package/lib/commonjs/utils/osGeocoder.js.map +1 -0
  151. package/lib/commonjs/utils/parseGoogleAddressComponents.js +74 -0
  152. package/lib/commonjs/utils/parseGoogleAddressComponents.js.map +1 -0
  153. package/lib/commonjs/utils/personNameNormalize.js +24 -0
  154. package/lib/commonjs/utils/personNameNormalize.js.map +1 -0
  155. package/lib/commonjs/utils/sdkError.js +34 -0
  156. package/lib/commonjs/utils/sdkError.js.map +1 -0
  157. package/lib/commonjs/utils/sdkVersion.js +13 -0
  158. package/lib/commonjs/utils/sdkVersion.js.map +1 -0
  159. package/lib/commonjs/utils/stepConfig.js +65 -0
  160. package/lib/commonjs/utils/stepConfig.js.map +1 -0
  161. package/lib/commonjs/utils/taxInfoConfig.js +19 -0
  162. package/lib/commonjs/utils/taxInfoConfig.js.map +1 -0
  163. package/lib/module/camera/AddressSearchBar.js +299 -0
  164. package/lib/module/camera/AddressSearchBar.js.map +1 -0
  165. package/lib/module/camera/DocumentCapture.js +500 -0
  166. package/lib/module/camera/DocumentCapture.js.map +1 -0
  167. package/lib/module/camera/LivenessCamera.js +529 -0
  168. package/lib/module/camera/LivenessCamera.js.map +1 -0
  169. package/lib/module/camera/MapAddressPicker.js +337 -0
  170. package/lib/module/camera/MapAddressPicker.js.map +1 -0
  171. package/lib/module/core/VelionOnboarding.js +811 -0
  172. package/lib/module/core/VelionOnboarding.js.map +1 -0
  173. package/lib/module/core/sessionDeclinedCopy.js +52 -0
  174. package/lib/module/core/sessionDeclinedCopy.js.map +1 -0
  175. package/lib/module/core/sessionStateMapper.js +128 -0
  176. package/lib/module/core/sessionStateMapper.js.map +1 -0
  177. package/lib/module/core/sseReasonMessages.js +446 -0
  178. package/lib/module/core/sseReasonMessages.js.map +1 -0
  179. package/lib/module/data/iso3166Alpha2Codes.json +1 -0
  180. package/lib/module/data/iso3166CountryNames.json +251 -0
  181. package/lib/module/i18n/index.js +25 -0
  182. package/lib/module/i18n/index.js.map +1 -0
  183. package/lib/module/i18n/strings/en.js +257 -0
  184. package/lib/module/i18n/strings/en.js.map +1 -0
  185. package/lib/module/i18n/strings/es.js +262 -0
  186. package/lib/module/i18n/strings/es.js.map +1 -0
  187. package/lib/module/index.js +36 -0
  188. package/lib/module/index.js.map +1 -0
  189. package/lib/module/steps/AddressInfoStep.js +646 -0
  190. package/lib/module/steps/AddressInfoStep.js.map +1 -0
  191. package/lib/module/steps/DocumentsOcrStep.js +391 -0
  192. package/lib/module/steps/DocumentsOcrStep.js.map +1 -0
  193. package/lib/module/steps/EmailContactStep.js +140 -0
  194. package/lib/module/steps/EmailContactStep.js.map +1 -0
  195. package/lib/module/steps/EmailOtpStep.js +215 -0
  196. package/lib/module/steps/EmailOtpStep.js.map +1 -0
  197. package/lib/module/steps/FaceMatchStep.js +161 -0
  198. package/lib/module/steps/FaceMatchStep.js.map +1 -0
  199. package/lib/module/steps/FingerprintStep.js +87 -0
  200. package/lib/module/steps/FingerprintStep.js.map +1 -0
  201. package/lib/module/steps/HumanBasicInfoStep.js +238 -0
  202. package/lib/module/steps/HumanBasicInfoStep.js.map +1 -0
  203. package/lib/module/steps/HumanExtendedInfoStep.js +263 -0
  204. package/lib/module/steps/HumanExtendedInfoStep.js.map +1 -0
  205. package/lib/module/steps/LegalBasicInfoStep.js +183 -0
  206. package/lib/module/steps/LegalBasicInfoStep.js.map +1 -0
  207. package/lib/module/steps/LegalExtendedInfoStep.js +161 -0
  208. package/lib/module/steps/LegalExtendedInfoStep.js.map +1 -0
  209. package/lib/module/steps/LivenessMatchStep.js +701 -0
  210. package/lib/module/steps/LivenessMatchStep.js.map +1 -0
  211. package/lib/module/steps/PhoneContactStep.js +141 -0
  212. package/lib/module/steps/PhoneContactStep.js.map +1 -0
  213. package/lib/module/steps/PhoneOtpStep.js +214 -0
  214. package/lib/module/steps/PhoneOtpStep.js.map +1 -0
  215. package/lib/module/steps/SwornDeclarationStep.js +191 -0
  216. package/lib/module/steps/SwornDeclarationStep.js.map +1 -0
  217. package/lib/module/steps/TaxInfoStep.js +239 -0
  218. package/lib/module/steps/TaxInfoStep.js.map +1 -0
  219. package/lib/module/steps/TermsAndConditionsStep.js +233 -0
  220. package/lib/module/steps/TermsAndConditionsStep.js.map +1 -0
  221. package/lib/module/steps/_shared.js +33 -0
  222. package/lib/module/steps/_shared.js.map +1 -0
  223. package/lib/module/steps/types.js +4 -0
  224. package/lib/module/steps/types.js.map +1 -0
  225. package/lib/module/transport/api.js +173 -0
  226. package/lib/module/transport/api.js.map +1 -0
  227. package/lib/module/transport/irisWebSocket.js +115 -0
  228. package/lib/module/transport/irisWebSocket.js.map +1 -0
  229. package/lib/module/transport/secureUrl.js +45 -0
  230. package/lib/module/transport/secureUrl.js.map +1 -0
  231. package/lib/module/transport/sse.js +242 -0
  232. package/lib/module/transport/sse.js.map +1 -0
  233. package/lib/module/types/index.js +457 -0
  234. package/lib/module/types/index.js.map +1 -0
  235. package/lib/module/ui/MapFallbackBoundary.js +37 -0
  236. package/lib/module/ui/MapFallbackBoundary.js.map +1 -0
  237. package/lib/module/ui/StepShell.js +114 -0
  238. package/lib/module/ui/StepShell.js.map +1 -0
  239. package/lib/module/ui/VelionOnboardingScreen.js +212 -0
  240. package/lib/module/ui/VelionOnboardingScreen.js.map +1 -0
  241. package/lib/module/ui/forms/index.js +5 -0
  242. package/lib/module/ui/forms/index.js.map +1 -0
  243. package/lib/module/ui/forms/useInlineValidation.js +84 -0
  244. package/lib/module/ui/forms/useInlineValidation.js.map +1 -0
  245. package/lib/module/ui/forms/validators.js +27 -0
  246. package/lib/module/ui/forms/validators.js.map +1 -0
  247. package/lib/module/ui/icons/HomeHeartIcon.js +33 -0
  248. package/lib/module/ui/icons/HomeHeartIcon.js.map +1 -0
  249. package/lib/module/ui/icons/StepIcon.js +55 -0
  250. package/lib/module/ui/icons/StepIcon.js.map +1 -0
  251. package/lib/module/ui/overlays/AnalyzingOverlay.js +279 -0
  252. package/lib/module/ui/overlays/AnalyzingOverlay.js.map +1 -0
  253. package/lib/module/ui/overlays/LoadingOverlay.js +104 -0
  254. package/lib/module/ui/overlays/LoadingOverlay.js.map +1 -0
  255. package/lib/module/ui/overlays/ProgressBar.js +90 -0
  256. package/lib/module/ui/overlays/ProgressBar.js.map +1 -0
  257. package/lib/module/ui/overlays/RetryDialog.js +121 -0
  258. package/lib/module/ui/overlays/RetryDialog.js.map +1 -0
  259. package/lib/module/ui/overlays/index.js +6 -0
  260. package/lib/module/ui/overlays/index.js.map +1 -0
  261. package/lib/module/ui/primitives/Banner.js +77 -0
  262. package/lib/module/ui/primitives/Banner.js.map +1 -0
  263. package/lib/module/ui/primitives/Button.js +138 -0
  264. package/lib/module/ui/primitives/Button.js.map +1 -0
  265. package/lib/module/ui/primitives/Card.js +46 -0
  266. package/lib/module/ui/primitives/Card.js.map +1 -0
  267. package/lib/module/ui/primitives/Checkbox.js +136 -0
  268. package/lib/module/ui/primitives/Checkbox.js.map +1 -0
  269. package/lib/module/ui/primitives/CountrySelect.js +284 -0
  270. package/lib/module/ui/primitives/CountrySelect.js.map +1 -0
  271. package/lib/module/ui/primitives/DatePicker.js +241 -0
  272. package/lib/module/ui/primitives/DatePicker.js.map +1 -0
  273. package/lib/module/ui/primitives/Input.js +97 -0
  274. package/lib/module/ui/primitives/Input.js.map +1 -0
  275. package/lib/module/ui/primitives/Select.js +205 -0
  276. package/lib/module/ui/primitives/Select.js.map +1 -0
  277. package/lib/module/ui/primitives/Spinner.js +21 -0
  278. package/lib/module/ui/primitives/Spinner.js.map +1 -0
  279. package/lib/module/ui/primitives/index.js +12 -0
  280. package/lib/module/ui/primitives/index.js.map +1 -0
  281. package/lib/module/ui/theme/ThemeProvider.js +67 -0
  282. package/lib/module/ui/theme/ThemeProvider.js.map +1 -0
  283. package/lib/module/ui/theme/index.js +5 -0
  284. package/lib/module/ui/theme/index.js.map +1 -0
  285. package/lib/module/ui/theme/tokens.js +145 -0
  286. package/lib/module/ui/theme/tokens.js.map +1 -0
  287. package/lib/module/utils/EventEmitter.js +139 -0
  288. package/lib/module/utils/EventEmitter.js.map +1 -0
  289. package/lib/module/utils/base64.js +47 -0
  290. package/lib/module/utils/base64.js.map +1 -0
  291. package/lib/module/utils/deviceFingerprint.js +129 -0
  292. package/lib/module/utils/deviceFingerprint.js.map +1 -0
  293. package/lib/module/utils/documentTypeOptions.js +31 -0
  294. package/lib/module/utils/documentTypeOptions.js.map +1 -0
  295. package/lib/module/utils/googleMapsPreflight.js +73 -0
  296. package/lib/module/utils/googleMapsPreflight.js.map +1 -0
  297. package/lib/module/utils/hmac.js +53 -0
  298. package/lib/module/utils/hmac.js.map +1 -0
  299. package/lib/module/utils/iso3166Countries.js +92 -0
  300. package/lib/module/utils/iso3166Countries.js.map +1 -0
  301. package/lib/module/utils/jpegFromUri.js +40 -0
  302. package/lib/module/utils/jpegFromUri.js.map +1 -0
  303. package/lib/module/utils/keepAwake.js +53 -0
  304. package/lib/module/utils/keepAwake.js.map +1 -0
  305. package/lib/module/utils/log.js +37 -0
  306. package/lib/module/utils/log.js.map +1 -0
  307. package/lib/module/utils/osGeocoder.js +65 -0
  308. package/lib/module/utils/osGeocoder.js.map +1 -0
  309. package/lib/module/utils/parseGoogleAddressComponents.js +69 -0
  310. package/lib/module/utils/parseGoogleAddressComponents.js.map +1 -0
  311. package/lib/module/utils/personNameNormalize.js +20 -0
  312. package/lib/module/utils/personNameNormalize.js.map +1 -0
  313. package/lib/module/utils/sdkError.js +29 -0
  314. package/lib/module/utils/sdkError.js.map +1 -0
  315. package/lib/module/utils/sdkVersion.js +9 -0
  316. package/lib/module/utils/sdkVersion.js.map +1 -0
  317. package/lib/module/utils/stepConfig.js +59 -0
  318. package/lib/module/utils/stepConfig.js.map +1 -0
  319. package/lib/module/utils/taxInfoConfig.js +15 -0
  320. package/lib/module/utils/taxInfoConfig.js.map +1 -0
  321. package/lib/typescript/camera/AddressSearchBar.d.ts +37 -0
  322. package/lib/typescript/camera/AddressSearchBar.d.ts.map +1 -0
  323. package/lib/typescript/camera/DocumentCapture.d.ts +34 -0
  324. package/lib/typescript/camera/DocumentCapture.d.ts.map +1 -0
  325. package/lib/typescript/camera/LivenessCamera.d.ts +50 -0
  326. package/lib/typescript/camera/LivenessCamera.d.ts.map +1 -0
  327. package/lib/typescript/camera/MapAddressPicker.d.ts +57 -0
  328. package/lib/typescript/camera/MapAddressPicker.d.ts.map +1 -0
  329. package/lib/typescript/core/VelionOnboarding.d.ts +115 -0
  330. package/lib/typescript/core/VelionOnboarding.d.ts.map +1 -0
  331. package/lib/typescript/core/sessionDeclinedCopy.d.ts +16 -0
  332. package/lib/typescript/core/sessionDeclinedCopy.d.ts.map +1 -0
  333. package/lib/typescript/core/sessionStateMapper.d.ts +33 -0
  334. package/lib/typescript/core/sessionStateMapper.d.ts.map +1 -0
  335. package/lib/typescript/core/sseReasonMessages.d.ts +20 -0
  336. package/lib/typescript/core/sseReasonMessages.d.ts.map +1 -0
  337. package/lib/typescript/i18n/index.d.ts +13 -0
  338. package/lib/typescript/i18n/index.d.ts.map +1 -0
  339. package/lib/typescript/i18n/strings/en.d.ts +3 -0
  340. package/lib/typescript/i18n/strings/en.d.ts.map +1 -0
  341. package/lib/typescript/i18n/strings/es.d.ts +260 -0
  342. package/lib/typescript/i18n/strings/es.d.ts.map +1 -0
  343. package/lib/typescript/index.d.ts +26 -0
  344. package/lib/typescript/index.d.ts.map +1 -0
  345. package/lib/typescript/steps/AddressInfoStep.d.ts +26 -0
  346. package/lib/typescript/steps/AddressInfoStep.d.ts.map +1 -0
  347. package/lib/typescript/steps/DocumentsOcrStep.d.ts +26 -0
  348. package/lib/typescript/steps/DocumentsOcrStep.d.ts.map +1 -0
  349. package/lib/typescript/steps/EmailContactStep.d.ts +15 -0
  350. package/lib/typescript/steps/EmailContactStep.d.ts.map +1 -0
  351. package/lib/typescript/steps/EmailOtpStep.d.ts +21 -0
  352. package/lib/typescript/steps/EmailOtpStep.d.ts.map +1 -0
  353. package/lib/typescript/steps/FaceMatchStep.d.ts +27 -0
  354. package/lib/typescript/steps/FaceMatchStep.d.ts.map +1 -0
  355. package/lib/typescript/steps/FingerprintStep.d.ts +25 -0
  356. package/lib/typescript/steps/FingerprintStep.d.ts.map +1 -0
  357. package/lib/typescript/steps/HumanBasicInfoStep.d.ts +25 -0
  358. package/lib/typescript/steps/HumanBasicInfoStep.d.ts.map +1 -0
  359. package/lib/typescript/steps/HumanExtendedInfoStep.d.ts +23 -0
  360. package/lib/typescript/steps/HumanExtendedInfoStep.d.ts.map +1 -0
  361. package/lib/typescript/steps/LegalBasicInfoStep.d.ts +17 -0
  362. package/lib/typescript/steps/LegalBasicInfoStep.d.ts.map +1 -0
  363. package/lib/typescript/steps/LegalExtendedInfoStep.d.ts +17 -0
  364. package/lib/typescript/steps/LegalExtendedInfoStep.d.ts.map +1 -0
  365. package/lib/typescript/steps/LivenessMatchStep.d.ts +26 -0
  366. package/lib/typescript/steps/LivenessMatchStep.d.ts.map +1 -0
  367. package/lib/typescript/steps/PhoneContactStep.d.ts +15 -0
  368. package/lib/typescript/steps/PhoneContactStep.d.ts.map +1 -0
  369. package/lib/typescript/steps/PhoneOtpStep.d.ts +19 -0
  370. package/lib/typescript/steps/PhoneOtpStep.d.ts.map +1 -0
  371. package/lib/typescript/steps/SwornDeclarationStep.d.ts +20 -0
  372. package/lib/typescript/steps/SwornDeclarationStep.d.ts.map +1 -0
  373. package/lib/typescript/steps/TaxInfoStep.d.ts +19 -0
  374. package/lib/typescript/steps/TaxInfoStep.d.ts.map +1 -0
  375. package/lib/typescript/steps/TermsAndConditionsStep.d.ts +21 -0
  376. package/lib/typescript/steps/TermsAndConditionsStep.d.ts.map +1 -0
  377. package/lib/typescript/steps/_shared.d.ts +11 -0
  378. package/lib/typescript/steps/_shared.d.ts.map +1 -0
  379. package/lib/typescript/steps/types.d.ts +68 -0
  380. package/lib/typescript/steps/types.d.ts.map +1 -0
  381. package/lib/typescript/transport/api.d.ts +35 -0
  382. package/lib/typescript/transport/api.d.ts.map +1 -0
  383. package/lib/typescript/transport/irisWebSocket.d.ts +72 -0
  384. package/lib/typescript/transport/irisWebSocket.d.ts.map +1 -0
  385. package/lib/typescript/transport/secureUrl.d.ts +14 -0
  386. package/lib/typescript/transport/secureUrl.d.ts.map +1 -0
  387. package/lib/typescript/transport/sse.d.ts +54 -0
  388. package/lib/typescript/transport/sse.d.ts.map +1 -0
  389. package/lib/typescript/types/index.d.ts +1010 -0
  390. package/lib/typescript/types/index.d.ts.map +1 -0
  391. package/lib/typescript/ui/MapFallbackBoundary.d.ts +28 -0
  392. package/lib/typescript/ui/MapFallbackBoundary.d.ts.map +1 -0
  393. package/lib/typescript/ui/StepShell.d.ts +19 -0
  394. package/lib/typescript/ui/StepShell.d.ts.map +1 -0
  395. package/lib/typescript/ui/VelionOnboardingScreen.d.ts +19 -0
  396. package/lib/typescript/ui/VelionOnboardingScreen.d.ts.map +1 -0
  397. package/lib/typescript/ui/forms/index.d.ts +3 -0
  398. package/lib/typescript/ui/forms/index.d.ts.map +1 -0
  399. package/lib/typescript/ui/forms/useInlineValidation.d.ts +30 -0
  400. package/lib/typescript/ui/forms/useInlineValidation.d.ts.map +1 -0
  401. package/lib/typescript/ui/forms/validators.d.ts +11 -0
  402. package/lib/typescript/ui/forms/validators.d.ts.map +1 -0
  403. package/lib/typescript/ui/icons/HomeHeartIcon.d.ts +14 -0
  404. package/lib/typescript/ui/icons/HomeHeartIcon.d.ts.map +1 -0
  405. package/lib/typescript/ui/icons/StepIcon.d.ts +26 -0
  406. package/lib/typescript/ui/icons/StepIcon.d.ts.map +1 -0
  407. package/lib/typescript/ui/overlays/AnalyzingOverlay.d.ts +24 -0
  408. package/lib/typescript/ui/overlays/AnalyzingOverlay.d.ts.map +1 -0
  409. package/lib/typescript/ui/overlays/LoadingOverlay.d.ts +19 -0
  410. package/lib/typescript/ui/overlays/LoadingOverlay.d.ts.map +1 -0
  411. package/lib/typescript/ui/overlays/ProgressBar.d.ts +26 -0
  412. package/lib/typescript/ui/overlays/ProgressBar.d.ts.map +1 -0
  413. package/lib/typescript/ui/overlays/RetryDialog.d.ts +17 -0
  414. package/lib/typescript/ui/overlays/RetryDialog.d.ts.map +1 -0
  415. package/lib/typescript/ui/overlays/index.d.ts +4 -0
  416. package/lib/typescript/ui/overlays/index.d.ts.map +1 -0
  417. package/lib/typescript/ui/primitives/Banner.d.ts +11 -0
  418. package/lib/typescript/ui/primitives/Banner.d.ts.map +1 -0
  419. package/lib/typescript/ui/primitives/Button.d.ts +27 -0
  420. package/lib/typescript/ui/primitives/Button.d.ts.map +1 -0
  421. package/lib/typescript/ui/primitives/Card.d.ts +10 -0
  422. package/lib/typescript/ui/primitives/Card.d.ts.map +1 -0
  423. package/lib/typescript/ui/primitives/Checkbox.d.ts +25 -0
  424. package/lib/typescript/ui/primitives/Checkbox.d.ts.map +1 -0
  425. package/lib/typescript/ui/primitives/CountrySelect.d.ts +31 -0
  426. package/lib/typescript/ui/primitives/CountrySelect.d.ts.map +1 -0
  427. package/lib/typescript/ui/primitives/DatePicker.d.ts +42 -0
  428. package/lib/typescript/ui/primitives/DatePicker.d.ts.map +1 -0
  429. package/lib/typescript/ui/primitives/Input.d.ts +17 -0
  430. package/lib/typescript/ui/primitives/Input.d.ts.map +1 -0
  431. package/lib/typescript/ui/primitives/Select.d.ts +26 -0
  432. package/lib/typescript/ui/primitives/Select.d.ts.map +1 -0
  433. package/lib/typescript/ui/primitives/Spinner.d.ts +10 -0
  434. package/lib/typescript/ui/primitives/Spinner.d.ts.map +1 -0
  435. package/lib/typescript/ui/primitives/index.d.ts +10 -0
  436. package/lib/typescript/ui/primitives/index.d.ts.map +1 -0
  437. package/lib/typescript/ui/theme/ThemeProvider.d.ts +23 -0
  438. package/lib/typescript/ui/theme/ThemeProvider.d.ts.map +1 -0
  439. package/lib/typescript/ui/theme/index.d.ts +3 -0
  440. package/lib/typescript/ui/theme/index.d.ts.map +1 -0
  441. package/lib/typescript/ui/theme/tokens.d.ts +42 -0
  442. package/lib/typescript/ui/theme/tokens.d.ts.map +1 -0
  443. package/lib/typescript/utils/EventEmitter.d.ts +98 -0
  444. package/lib/typescript/utils/EventEmitter.d.ts.map +1 -0
  445. package/lib/typescript/utils/base64.d.ts +19 -0
  446. package/lib/typescript/utils/base64.d.ts.map +1 -0
  447. package/lib/typescript/utils/deviceFingerprint.d.ts +42 -0
  448. package/lib/typescript/utils/deviceFingerprint.d.ts.map +1 -0
  449. package/lib/typescript/utils/documentTypeOptions.d.ts +13 -0
  450. package/lib/typescript/utils/documentTypeOptions.d.ts.map +1 -0
  451. package/lib/typescript/utils/googleMapsPreflight.d.ts +44 -0
  452. package/lib/typescript/utils/googleMapsPreflight.d.ts.map +1 -0
  453. package/lib/typescript/utils/hmac.d.ts +39 -0
  454. package/lib/typescript/utils/hmac.d.ts.map +1 -0
  455. package/lib/typescript/utils/iso3166Countries.d.ts +27 -0
  456. package/lib/typescript/utils/iso3166Countries.d.ts.map +1 -0
  457. package/lib/typescript/utils/jpegFromUri.d.ts +29 -0
  458. package/lib/typescript/utils/jpegFromUri.d.ts.map +1 -0
  459. package/lib/typescript/utils/keepAwake.d.ts +16 -0
  460. package/lib/typescript/utils/keepAwake.d.ts.map +1 -0
  461. package/lib/typescript/utils/log.d.ts +18 -0
  462. package/lib/typescript/utils/log.d.ts.map +1 -0
  463. package/lib/typescript/utils/osGeocoder.d.ts +38 -0
  464. package/lib/typescript/utils/osGeocoder.d.ts.map +1 -0
  465. package/lib/typescript/utils/parseGoogleAddressComponents.d.ts +43 -0
  466. package/lib/typescript/utils/parseGoogleAddressComponents.d.ts.map +1 -0
  467. package/lib/typescript/utils/personNameNormalize.d.ts +10 -0
  468. package/lib/typescript/utils/personNameNormalize.d.ts.map +1 -0
  469. package/lib/typescript/utils/sdkError.d.ts +14 -0
  470. package/lib/typescript/utils/sdkError.d.ts.map +1 -0
  471. package/lib/typescript/utils/sdkVersion.d.ts +7 -0
  472. package/lib/typescript/utils/sdkVersion.d.ts.map +1 -0
  473. package/lib/typescript/utils/stepConfig.d.ts +8 -0
  474. package/lib/typescript/utils/stepConfig.d.ts.map +1 -0
  475. package/lib/typescript/utils/taxInfoConfig.d.ts +7 -0
  476. package/lib/typescript/utils/taxInfoConfig.d.ts.map +1 -0
  477. package/package.json +99 -0
  478. package/src/camera/AddressSearchBar.tsx +363 -0
  479. package/src/camera/DocumentCapture.tsx +505 -0
  480. package/src/camera/LivenessCamera.tsx +602 -0
  481. package/src/camera/MapAddressPicker.tsx +397 -0
  482. package/src/core/VelionOnboarding.ts +974 -0
  483. package/src/core/sessionDeclinedCopy.ts +76 -0
  484. package/src/core/sessionStateMapper.ts +167 -0
  485. package/src/core/sseReasonMessages.ts +531 -0
  486. package/src/data/iso3166Alpha2Codes.json +1 -0
  487. package/src/data/iso3166CountryNames.json +251 -0
  488. package/src/i18n/index.ts +26 -0
  489. package/src/i18n/strings/en.ts +289 -0
  490. package/src/i18n/strings/es.ts +291 -0
  491. package/src/index.ts +137 -0
  492. package/src/steps/AddressInfoStep.tsx +726 -0
  493. package/src/steps/DocumentsOcrStep.tsx +472 -0
  494. package/src/steps/EmailContactStep.tsx +159 -0
  495. package/src/steps/EmailOtpStep.tsx +250 -0
  496. package/src/steps/FaceMatchStep.tsx +177 -0
  497. package/src/steps/FingerprintStep.tsx +99 -0
  498. package/src/steps/HumanBasicInfoStep.tsx +274 -0
  499. package/src/steps/HumanExtendedInfoStep.tsx +353 -0
  500. package/src/steps/LegalBasicInfoStep.tsx +205 -0
  501. package/src/steps/LegalExtendedInfoStep.tsx +171 -0
  502. package/src/steps/LivenessMatchStep.tsx +846 -0
  503. package/src/steps/PhoneContactStep.tsx +160 -0
  504. package/src/steps/PhoneOtpStep.tsx +249 -0
  505. package/src/steps/SwornDeclarationStep.tsx +220 -0
  506. package/src/steps/TaxInfoStep.tsx +277 -0
  507. package/src/steps/TermsAndConditionsStep.tsx +261 -0
  508. package/src/steps/_shared.ts +44 -0
  509. package/src/steps/types.ts +72 -0
  510. package/src/transport/api.ts +257 -0
  511. package/src/transport/irisWebSocket.ts +186 -0
  512. package/src/transport/secureUrl.ts +47 -0
  513. package/src/transport/sse.ts +310 -0
  514. package/src/types/index.ts +1198 -0
  515. package/src/ui/MapFallbackBoundary.tsx +46 -0
  516. package/src/ui/StepShell.tsx +137 -0
  517. package/src/ui/VelionOnboardingScreen.tsx +223 -0
  518. package/src/ui/forms/index.ts +12 -0
  519. package/src/ui/forms/useInlineValidation.ts +115 -0
  520. package/src/ui/forms/validators.ts +29 -0
  521. package/src/ui/icons/HomeHeartIcon.tsx +34 -0
  522. package/src/ui/icons/StepIcon.tsx +77 -0
  523. package/src/ui/overlays/AnalyzingOverlay.tsx +323 -0
  524. package/src/ui/overlays/LoadingOverlay.tsx +115 -0
  525. package/src/ui/overlays/ProgressBar.tsx +99 -0
  526. package/src/ui/overlays/RetryDialog.tsx +128 -0
  527. package/src/ui/overlays/index.ts +3 -0
  528. package/src/ui/primitives/Banner.tsx +81 -0
  529. package/src/ui/primitives/Button.tsx +164 -0
  530. package/src/ui/primitives/Card.tsx +55 -0
  531. package/src/ui/primitives/Checkbox.tsx +153 -0
  532. package/src/ui/primitives/CountrySelect.tsx +356 -0
  533. package/src/ui/primitives/DatePicker.tsx +266 -0
  534. package/src/ui/primitives/Input.tsx +110 -0
  535. package/src/ui/primitives/Select.tsx +259 -0
  536. package/src/ui/primitives/Spinner.tsx +17 -0
  537. package/src/ui/primitives/index.ts +9 -0
  538. package/src/ui/theme/ThemeProvider.tsx +102 -0
  539. package/src/ui/theme/index.ts +17 -0
  540. package/src/ui/theme/tokens.ts +159 -0
  541. package/src/utils/EventEmitter.ts +155 -0
  542. package/src/utils/base64.ts +44 -0
  543. package/src/utils/deviceFingerprint.ts +184 -0
  544. package/src/utils/documentTypeOptions.ts +31 -0
  545. package/src/utils/googleMapsPreflight.ts +72 -0
  546. package/src/utils/hmac.ts +61 -0
  547. package/src/utils/iso3166Countries.ts +111 -0
  548. package/src/utils/jpegFromUri.ts +42 -0
  549. package/src/utils/keepAwake.ts +62 -0
  550. package/src/utils/log.ts +37 -0
  551. package/src/utils/osGeocoder.ts +75 -0
  552. package/src/utils/parseGoogleAddressComponents.ts +123 -0
  553. package/src/utils/personNameNormalize.ts +17 -0
  554. package/src/utils/sdkError.ts +40 -0
  555. package/src/utils/sdkVersion.ts +6 -0
  556. package/src/utils/stepConfig.ts +75 -0
  557. package/src/utils/taxInfoConfig.ts +14 -0
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Base64 helpers without `Buffer` (RN does not ship a Buffer global) and
5
+ * without leaning on `react-native-quick-base64`. Hermes provides `btoa` /
6
+ * `atob`, which take Latin-1 strings — we wrap them with byte arrays so
7
+ * callers don't have to think about the in-between.
8
+ */
9
+
10
+ /**
11
+ * Encodes a `Uint8Array` to a standard base64 string.
12
+ *
13
+ * Implementation note: `btoa` requires a Latin-1 string. We convert the byte
14
+ * array to one char per byte via `String.fromCharCode`, in chunks to avoid
15
+ * blowing the JS argument-list limit on large frames (~1 MB JPEG).
16
+ */
17
+ export function bytesToBase64(bytes) {
18
+ const CHUNK = 0x8000; // 32 KiB — well below the spread-args limit.
19
+ let binary = '';
20
+ for (let i = 0; i < bytes.length; i += CHUNK) {
21
+ const slice = bytes.subarray(i, i + CHUNK);
22
+ binary += String.fromCharCode(...slice);
23
+ }
24
+ // `btoa` is part of the WHATWG spec and is available on Hermes (RN ≥ 0.74).
25
+ return globalThis.btoa(binary);
26
+ }
27
+
28
+ /** Decodes a standard base64 string into a `Uint8Array`. */
29
+ export function base64ToBytes(b64) {
30
+ const binary = globalThis.atob(b64);
31
+ const bytes = new Uint8Array(binary.length);
32
+ for (let i = 0; i < binary.length; i += 1) {
33
+ bytes[i] = binary.charCodeAt(i);
34
+ }
35
+ return bytes;
36
+ }
37
+
38
+ /** Lowercase hex (`'a1f3…'`) — matches the canonical Iris HMAC format. */
39
+ export function bytesToHexLower(bytes) {
40
+ let out = '';
41
+ for (let i = 0; i < bytes.length; i += 1) {
42
+ const v = bytes[i] ?? 0;
43
+ out += v.toString(16).padStart(2, '0');
44
+ }
45
+ return out;
46
+ }
47
+ //# sourceMappingURL=base64.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["bytesToBase64","bytes","CHUNK","binary","i","length","slice","subarray","String","fromCharCode","globalThis","btoa","base64ToBytes","b64","atob","Uint8Array","charCodeAt","bytesToHexLower","out","v","toString","padStart"],"sourceRoot":"../../../src","sources":["utils/base64.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,aAAaA,CAACC,KAAiB,EAAU;EACvD,MAAMC,KAAK,GAAG,MAAM,CAAC,CAAC;EACtB,IAAIC,MAAM,GAAG,EAAE;EACf,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,KAAK,CAACI,MAAM,EAAED,CAAC,IAAIF,KAAK,EAAE;IAC5C,MAAMI,KAAK,GAAGL,KAAK,CAACM,QAAQ,CAACH,CAAC,EAAEA,CAAC,GAAGF,KAAK,CAAC;IAC1CC,MAAM,IAAIK,MAAM,CAACC,YAAY,CAAC,GAAGH,KAAK,CAAC;EACzC;EACA;EACA,OAAOI,UAAU,CAACC,IAAI,CAACR,MAAM,CAAC;AAChC;;AAEA;AACA,OAAO,SAASS,aAAaA,CAACC,GAAW,EAAc;EACrD,MAAMV,MAAM,GAAGO,UAAU,CAACI,IAAI,CAACD,GAAG,CAAC;EACnC,MAAMZ,KAAK,GAAG,IAAIc,UAAU,CAACZ,MAAM,CAACE,MAAM,CAAC;EAC3C,KAAK,IAAID,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,MAAM,CAACE,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;IACzCH,KAAK,CAACG,CAAC,CAAC,GAAGD,MAAM,CAACa,UAAU,CAACZ,CAAC,CAAC;EACjC;EACA,OAAOH,KAAK;AACd;;AAEA;AACA,OAAO,SAASgB,eAAeA,CAAChB,KAAiB,EAAU;EACzD,IAAIiB,GAAG,GAAG,EAAE;EACZ,KAAK,IAAId,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,KAAK,CAACI,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;IACxC,MAAMe,CAAC,GAAGlB,KAAK,CAACG,CAAC,CAAC,IAAI,CAAC;IACvBc,GAAG,IAAIC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EACxC;EACA,OAAOH,GAAG;AACZ","ignoreList":[]}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * @fileoverview Device Fingerprint via Fingerprint Pro RN SDK.
5
+ *
6
+ * Uses the official `@fingerprintjs/fingerprintjs-pro-react-native` agent
7
+ * class to identify the device.
8
+ *
9
+ * Why a real SDK and not a hand-rolled hash:
10
+ * - The backend (`PublicSdkSessionController.fingerprint`) reads only
11
+ * `request_id` and `sealed_result` from the body. A custom `visitor_id`
12
+ * field is silently dropped and the AML enrichment lookup never runs.
13
+ * - Fingerprint Pro returns a stable `requestId` (lookup key against the
14
+ * Fingerprint server) and a `sealedResult` (encrypted payload the
15
+ * backend decrypts with its private key for server-side identification).
16
+ *
17
+ * The Fingerprint Pro RN SDK is loaded **dynamically** so it stays an
18
+ * optional peer dep: hosts that don't ship the fingerprint module get a
19
+ * clear `FINGERPRINT_FAILED` error instead of a hard module-resolution
20
+ * crash at app boot. (The Velion example app installs it; third-party
21
+ * consumers without a Fingerprint workspace can swap defaults via
22
+ * `fingerprintApiKey` / `fingerprintEndpoint` in `VelionConfig`.)
23
+ */
24
+
25
+ import { SdkErrorCode } from '../types';
26
+
27
+ /** Public shape of the result. */
28
+
29
+ /**
30
+ * Fingerprint Pro public API key for the shared Velion workspace. Hardcoded
31
+ * by design — Fingerprint distinguishes public keys (safe to ship in client
32
+ * code; bound to your domain/bundle ID at the Fingerprint dashboard) from
33
+ * secret keys (server-only, used by the worker to decrypt sealedResult or
34
+ * call the Server API). This constant is the *public* one.
35
+ */
36
+ const VELION_FP_PUBLIC_KEY = 'GU2vrZByydGqG9HYUaz2';
37
+
38
+ /**
39
+ * Loaded once per process. We resolve the optional native module lazily so
40
+ * its absence is reported as a clean SDK error rather than crashing the
41
+ * Metro bundler at startup with "Unable to resolve module".
42
+ */
43
+
44
+ function loadAgentCtor() {
45
+ // Avoid bundler hoisting at build time so missing optional dep doesn't
46
+ // crash the host app at boot.
47
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
48
+ const mod = require('@fingerprintjs/fingerprintjs-pro-react-native');
49
+ if (typeof mod.FingerprintJsProAgent !== 'function') {
50
+ throw new Error('Module @fingerprintjs/fingerprintjs-pro-react-native is installed ' + 'but does not export FingerprintJsProAgent. Upgrade to v3+ of the package.');
51
+ }
52
+ return mod.FingerprintJsProAgent;
53
+ }
54
+
55
+ /**
56
+ * Calls Fingerprint Pro RN to obtain `requestId` + optional `sealedResult`,
57
+ * the only two pieces of data the Velion backend cares about. Throws a
58
+ * shaped `SdkError` on any failure (missing module, agent init error,
59
+ * network).
60
+ */
61
+ export async function generateDeviceFingerprint(options) {
62
+ let AgentCtor;
63
+ try {
64
+ AgentCtor = loadAgentCtor();
65
+ } catch (err) {
66
+ throw {
67
+ code: SdkErrorCode.FINGERPRINT_FAILED,
68
+ message: 'Fingerprint Pro RN module is not installed. Add ' + '`@fingerprintjs/fingerprintjs-pro-react-native` to your app ' + '(and re-run `expo prebuild`) to enable the DEVICE_FINGERPRINT step.',
69
+ cause: err
70
+ };
71
+ }
72
+ const trimmedEndpoint = options.endpoint.replace(/\/$/, '').trim();
73
+ // An empty string is treated as "no custom endpoint" — the SDK falls through
74
+ // to its built-in public endpoint (api.fpjs.io). This is useful for
75
+ // diagnosing whether a custom proxy (e.g. fp.velion.la) is the cause of a
76
+ // ClientTimeout when the public path works.
77
+ const useCustomEndpoint = trimmedEndpoint.length > 0;
78
+ const apiKey = options.apiKey?.trim() || VELION_FP_PUBLIC_KEY;
79
+ // Internal cap for the call. The Fingerprint SDK has its own retry/timeout
80
+ // logic that on iOS occasionally hangs past 30s without surfacing the error
81
+ // to the JS layer; we Promise.race against this to guarantee a clean failure.
82
+ const timeoutMs = Math.max(6000, options.timeoutMs ?? 15000);
83
+ const agent = new AgentCtor({
84
+ apiKey,
85
+ region: 'us',
86
+ ...(useCustomEndpoint && {
87
+ endpointUrl: trimmedEndpoint,
88
+ // If the custom endpoint is unreachable (proxy misconfigured, DNS, etc.)
89
+ // the SDK falls back to the public Fingerprint Pro endpoint so the step
90
+ // still completes during development.
91
+ fallbackEndpointUrls: ['https://api.fpjs.io']
92
+ }),
93
+ extendedResponseFormat: true,
94
+ requestOptions: {
95
+ timeout: Math.floor(timeoutMs * 0.75)
96
+ }
97
+ });
98
+ let visitorData;
99
+ let timeoutHandle = null;
100
+ try {
101
+ visitorData = await Promise.race([agent.getVisitorData(), new Promise((_resolve, reject) => {
102
+ timeoutHandle = setTimeout(() => reject(new Error(`Fingerprint Pro getVisitorData() did not return within ${timeoutMs}ms`)), timeoutMs);
103
+ })]);
104
+ } catch (err) {
105
+ throw {
106
+ code: SdkErrorCode.FINGERPRINT_FAILED,
107
+ message: 'No pudimos completar el reconocimiento del dispositivo. ' + 'Probá nuevamente; si el problema persiste, verificá tu conexión ' + '(sin VPN ni proxies) o que el bundle ID de la app esté habilitado ' + 'en el dashboard de Fingerprint Pro.',
108
+ cause: err
109
+ };
110
+ } finally {
111
+ if (timeoutHandle !== null) clearTimeout(timeoutHandle);
112
+ }
113
+ const requestId = visitorData.requestId;
114
+ if (typeof requestId !== 'string' || requestId.length === 0) {
115
+ throw {
116
+ code: SdkErrorCode.FINGERPRINT_FAILED,
117
+ message: 'Fingerprint Pro did not return a requestId — backend cannot ' + 'enrich the session without it.',
118
+ cause: undefined
119
+ };
120
+ }
121
+ const result = {
122
+ request_id: requestId
123
+ };
124
+ if (typeof visitorData.sealedResult === 'string' && visitorData.sealedResult.length > 0) {
125
+ result.sealed_result = visitorData.sealedResult;
126
+ }
127
+ return result;
128
+ }
129
+ //# sourceMappingURL=deviceFingerprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SdkErrorCode","VELION_FP_PUBLIC_KEY","loadAgentCtor","mod","require","FingerprintJsProAgent","Error","generateDeviceFingerprint","options","AgentCtor","err","code","FINGERPRINT_FAILED","message","cause","trimmedEndpoint","endpoint","replace","trim","useCustomEndpoint","length","apiKey","timeoutMs","Math","max","agent","region","endpointUrl","fallbackEndpointUrls","extendedResponseFormat","requestOptions","timeout","floor","visitorData","timeoutHandle","Promise","race","getVisitorData","_resolve","reject","setTimeout","clearTimeout","requestId","undefined","result","request_id","sealedResult","sealed_result"],"sourceRoot":"../../../src","sources":["utils/deviceFingerprint.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,YAAY,QAAuB,UAAU;;AAEtD;;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,oBAAoB,GAAG,sBAAsB;;AAEnD;AACA;AACA;AACA;AACA;;AAmBA,SAASC,aAAaA,CAAA,EAAyB;EAC7C;EACA;EACA;EACA,MAAMC,GAAG,GAAGC,OAAO,CAAC,+CAA+C,CAElE;EACD,IAAI,OAAOD,GAAG,CAACE,qBAAqB,KAAK,UAAU,EAAE;IACnD,MAAM,IAAIC,KAAK,CACb,oEAAoE,GAClE,2EACJ,CAAC;EACH;EACA,OAAOH,GAAG,CAACE,qBAAqB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeE,yBAAyBA,CAC7CC,OAAiC,EACC;EAClC,IAAIC,SAA+B;EACnC,IAAI;IACFA,SAAS,GAAGP,aAAa,CAAC,CAAC;EAC7B,CAAC,CAAC,OAAOQ,GAAG,EAAE;IACZ,MAAM;MACJC,IAAI,EAAEX,YAAY,CAACY,kBAAkB;MACrCC,OAAO,EACL,kDAAkD,GAClD,8DAA8D,GAC9D,qEAAqE;MACvEC,KAAK,EAAEJ;IACT,CAAC;EACH;EAEA,MAAMK,eAAe,GAAGP,OAAO,CAACQ,QAAQ,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAACC,IAAI,CAAC,CAAC;EAClE;EACA;EACA;EACA;EACA,MAAMC,iBAAiB,GAAGJ,eAAe,CAACK,MAAM,GAAG,CAAC;EACpD,MAAMC,MAAM,GAAGb,OAAO,CAACa,MAAM,EAAEH,IAAI,CAAC,CAAC,IAAIjB,oBAAoB;EAC7D;EACA;EACA;EACA,MAAMqB,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,IAAI,EAAEhB,OAAO,CAACc,SAAS,IAAI,KAAK,CAAC;EAE5D,MAAMG,KAAK,GAAG,IAAIhB,SAAS,CAAC;IAC1BY,MAAM;IACNK,MAAM,EAAE,IAAI;IACZ,IAAIP,iBAAiB,IAAI;MACvBQ,WAAW,EAAEZ,eAAe;MAC5B;MACA;MACA;MACAa,oBAAoB,EAAE,CAAC,qBAAqB;IAC9C,CAAC,CAAC;IACFC,sBAAsB,EAAE,IAAI;IAC5BC,cAAc,EAAE;MAAEC,OAAO,EAAER,IAAI,CAACS,KAAK,CAACV,SAAS,GAAG,IAAI;IAAE;EAC1D,CAAC,CAAC;EAEF,IAAIW,WAA0D;EAC9D,IAAIC,aAAmD,GAAG,IAAI;EAC9D,IAAI;IACFD,WAAW,GAAG,MAAME,OAAO,CAACC,IAAI,CAAC,CAC/BX,KAAK,CAACY,cAAc,CAAC,CAAC,EACtB,IAAIF,OAAO,CAAQ,CAACG,QAAQ,EAAEC,MAAM,KAAK;MACvCL,aAAa,GAAGM,UAAU,CACxB,MACED,MAAM,CACJ,IAAIjC,KAAK,CACP,0DAA0DgB,SAAS,IACrE,CACF,CAAC,EACHA,SACF,CAAC;IACH,CAAC,CAAC,CACH,CAAC;EACJ,CAAC,CAAC,OAAOZ,GAAG,EAAE;IACZ,MAAM;MACJC,IAAI,EAAEX,YAAY,CAACY,kBAAkB;MACrCC,OAAO,EACL,0DAA0D,GAC1D,kEAAkE,GAClE,oEAAoE,GACpE,qCAAqC;MACvCC,KAAK,EAAEJ;IACT,CAAC;EACH,CAAC,SAAS;IACR,IAAIwB,aAAa,KAAK,IAAI,EAAEO,YAAY,CAACP,aAAa,CAAC;EACzD;EAEA,MAAMQ,SAAS,GAAGT,WAAW,CAACS,SAAS;EACvC,IAAI,OAAOA,SAAS,KAAK,QAAQ,IAAIA,SAAS,CAACtB,MAAM,KAAK,CAAC,EAAE;IAC3D,MAAM;MACJT,IAAI,EAAEX,YAAY,CAACY,kBAAkB;MACrCC,OAAO,EACL,8DAA8D,GAC9D,gCAAgC;MAClCC,KAAK,EAAE6B;IACT,CAAC;EACH;EAEA,MAAMC,MAA+B,GAAG;IAAEC,UAAU,EAAEH;EAAU,CAAC;EACjE,IAAI,OAAOT,WAAW,CAACa,YAAY,KAAK,QAAQ,IAAIb,WAAW,CAACa,YAAY,CAAC1B,MAAM,GAAG,CAAC,EAAE;IACvFwB,MAAM,CAACG,aAAa,GAAGd,WAAW,CAACa,YAAY;EACjD;EACA,OAAOF,MAAM;AACf","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Default identification document option for HUMAN_BASIC_INFO when the backend
5
+ * does not send `accepted_country_documents` (same label keys as legacy UI).
6
+ */
7
+
8
+ const DOCUMENT_TYPE_LABELS_BY_PRESET = {
9
+ es: {
10
+ ARG_DNI: 'DNI (Argentina)'
11
+ },
12
+ en: {
13
+ ARG_DNI: 'DNI (Argentina)'
14
+ },
15
+ ar: {
16
+ ARG_DNI: 'DNI (Argentina)'
17
+ }
18
+ };
19
+ /**
20
+ * Fallback list for the HUMAN_BASIC_INFO identification type selector when step config
21
+ * does not include document types from the backend.
22
+ */
23
+ export function resolveDocumentTypeOptions(uiLocale) {
24
+ const labelLocale = uiLocale === 'en' ? 'en' : uiLocale === 'ar' ? 'ar' : 'es';
25
+ const labelMap = DOCUMENT_TYPE_LABELS_BY_PRESET[labelLocale];
26
+ return [{
27
+ value: 'ARG_DNI',
28
+ label: labelMap.ARG_DNI
29
+ }];
30
+ }
31
+ //# sourceMappingURL=documentTypeOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DOCUMENT_TYPE_LABELS_BY_PRESET","es","ARG_DNI","en","ar","resolveDocumentTypeOptions","uiLocale","labelLocale","labelMap","value","label"],"sourceRoot":"../../../src","sources":["utils/documentTypeOptions.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAEA,MAAMA,8BAA8B,GAAG;EACrCC,EAAE,EAAE;IACFC,OAAO,EAAE;EACX,CAAC;EACDC,EAAE,EAAE;IACFD,OAAO,EAAE;EACX,CAAC;EACDE,EAAE,EAAE;IACFF,OAAO,EAAE;EACX;AACF,CAAU;AAIV;AACA;AACA;AACA;AACA,OAAO,SAASG,0BAA0BA,CACxCC,QAAgB,EACyB;EACzC,MAAMC,WAAyB,GAC7BD,QAAQ,KAAK,IAAI,GAAG,IAAI,GAAGA,QAAQ,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI;EAC5D,MAAME,QAAQ,GAAGR,8BAA8B,CAACO,WAAW,CAAC;EAC5D,OAAO,CAAC;IAAEE,KAAK,EAAE,SAAS;IAAEC,KAAK,EAAEF,QAAQ,CAACN;EAAQ,CAAC,CAAC;AACxD","ignoreList":[]}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Pre-flight checks for the assisted address flow.
5
+ *
6
+ * The SDK no longer calls any Google REST API from the client — reverse
7
+ * geocoding goes through the OS native geocoder (see `osGeocoder.ts`). What
8
+ * we still need to verify is:
9
+ * 1. `react-native-maps` is linked.
10
+ * 2. On Android, the Google Maps key is declared in `AndroidManifest.xml`
11
+ * as `<meta-data android:name="com.google.android.geo.API_KEY" .../>`.
12
+ * Without that, mounting `<MapView>` throws a native
13
+ * `IllegalStateException` from the Fabric UI manager — a JS error
14
+ * boundary cannot catch it because the throw happens in a native
15
+ * thread during the UI commit.
16
+ *
17
+ * Note that these probes cannot catch the iOS-specific case where
18
+ * `react-native-maps` IS installed but the `AirGoogleMaps` sub-target was
19
+ * never added to the Xcode project — that one only surfaces at render time
20
+ * and is handled by `MapFallbackBoundary`.
21
+ */
22
+
23
+ import { Platform } from 'react-native';
24
+ import { log } from './log';
25
+
26
+ /**
27
+ * Returns true when `react-native-maps` is importable and exposes the
28
+ * MapView component we need.
29
+ */
30
+ export function isReactNativeMapsAvailable() {
31
+ try {
32
+ // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
33
+ const mod = require('react-native-maps');
34
+ return typeof mod?.default === 'function' || typeof mod?.MapView === 'function';
35
+ } catch (err) {
36
+ log.warn('[gmaps-preflight] react-native-maps unavailable', err);
37
+ return false;
38
+ }
39
+ }
40
+
41
+ /**
42
+ * Best-effort probe for the Android `com.google.android.geo.API_KEY` meta-data
43
+ * in the host's `AndroidManifest.xml`.
44
+ *
45
+ * Returns:
46
+ * - `true` on iOS (the check does not apply — Apple Maps needs no key).
47
+ * - `true` when we can confirm the key is wired via the Expo config
48
+ * (`android.config.googleMaps.apiKey`). Expo prebuild copies that
49
+ * into the manifest, so its presence in `expoConfig` is a reliable
50
+ * proxy for the real meta-data.
51
+ * - `false` when `expo-constants` is available AND the Expo config does not
52
+ * declare the key — we know prebuild produced a manifest without
53
+ * the meta-data, so mounting `<MapView>` would crash.
54
+ * - `undefined` when `expo-constants` is not installed (bare RN). We cannot
55
+ * probe the manifest without a custom native module; the caller
56
+ * should default to the previous behaviour (trust the integrator
57
+ * when they pass `googleMapsApiKey` via `VelionConfig`).
58
+ */
59
+ export function isAndroidGoogleMapsKeyInManifest() {
60
+ if (Platform.OS !== 'android') return true;
61
+ let Constants;
62
+ try {
63
+ // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
64
+ const mod = require('expo-constants');
65
+ Constants = mod?.default ?? mod;
66
+ } catch {
67
+ return undefined;
68
+ }
69
+ const expoConfig = Constants?.expoConfig;
70
+ const key = expoConfig?.android?.config?.googleMaps?.apiKey;
71
+ return typeof key === 'string' && key.trim().length > 0;
72
+ }
73
+ //# sourceMappingURL=googleMapsPreflight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Platform","log","isReactNativeMapsAvailable","mod","require","default","MapView","err","warn","isAndroidGoogleMapsKeyInManifest","OS","Constants","undefined","expoConfig","key","android","config","googleMaps","apiKey","trim","length"],"sourceRoot":"../../../src","sources":["utils/googleMapsPreflight.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,GAAG,QAAQ,OAAO;;AAE3B;AACA;AACA;AACA;AACA,OAAO,SAASC,0BAA0BA,CAAA,EAAY;EACpD,IAAI;IACF;IACA,MAAMC,GAAG,GAAGC,OAAO,CAAC,mBAAmB,CAAC;IACxC,OAAO,OAAOD,GAAG,EAAEE,OAAO,KAAK,UAAU,IAAI,OAAOF,GAAG,EAAEG,OAAO,KAAK,UAAU;EACjF,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZN,GAAG,CAACO,IAAI,CAAC,iDAAiD,EAAED,GAAG,CAAC;IAChE,OAAO,KAAK;EACd;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,gCAAgCA,CAAA,EAAwB;EACtE,IAAIT,QAAQ,CAACU,EAAE,KAAK,SAAS,EAAE,OAAO,IAAI;EAC1C,IAAIC,SAAkB;EACtB,IAAI;IACF;IACA,MAAMR,GAAG,GAAGC,OAAO,CAAC,gBAAgB,CAAC;IACrCO,SAAS,GAAGR,GAAG,EAAEE,OAAO,IAAIF,GAAG;EACjC,CAAC,CAAC,MAAM;IACN,OAAOS,SAAS;EAClB;EACA,MAAMC,UAAU,GAAIF,SAAS,EAA2CE,UAE3D;EACb,MAAMC,GAAG,GAAGD,UAAU,EAAEE,OAAO,EAAEC,MAAM,EAAEC,UAAU,EAAEC,MAAM;EAC3D,OAAO,OAAOJ,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAACK,IAAI,CAAC,CAAC,CAACC,MAAM,GAAG,CAAC;AACzD","ignoreList":[]}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * @fileoverview HMAC-SHA256 over JPEG frames for the Iris liveness flow.
5
+ *
6
+ * React Native's WebCrypto support is incomplete in Hermes (no `subtle.sign`),
7
+ * so we lean on `@noble/hashes` — pure JavaScript, ~10 KB, no native code.
8
+ *
9
+ * Canonical message (must match the Iris orchestrator exactly):
10
+ * `${sessionId}\n${frameId}\n${ts}\n${sha256hex(jpeg)}`
11
+ *
12
+ * Output: lowercase hex MAC, sent in the JSON envelope's `mac` field.
13
+ */
14
+
15
+ import { hmac } from '@noble/hashes/hmac';
16
+ import { sha256 } from '@noble/hashes/sha256';
17
+ import { base64ToBytes, bytesToHexLower } from './base64';
18
+ /** Decode the base64 frame_integrity_key from `/liveness-init`. */
19
+ export function importHmacKey(base64) {
20
+ return {
21
+ raw: base64ToBytes(base64)
22
+ };
23
+ }
24
+
25
+ /**
26
+ * Build the signed envelope sent over the Iris WebSocket. Mirrors
27
+ * `LivenessModule.buildSignedEnvelope`:
28
+ * 1. Compute SHA-256 of the JPEG bytes (hex, lowercase).
29
+ * 2. Build the canonical message.
30
+ * 3. HMAC-SHA256 with the imported key.
31
+ * 4. Wrap into `{ type: 'FRAME', frameId, timestamp, image, mac }`.
32
+ *
33
+ * Returns the JSON string ready to `ws.send`.
34
+ */
35
+ export function buildSignedFrameEnvelope(args) {
36
+ const ts = args.timestamp ?? Date.now();
37
+ const digest = sha256(args.jpegBytes);
38
+ const digestHex = bytesToHexLower(digest);
39
+ const canonical = `${args.sessionId}\n${args.frameId}\n${ts}\n${digestHex}`;
40
+ const mac = hmac(sha256, args.key.raw, new TextEncoder().encode(canonical));
41
+ const macHex = bytesToHexLower(mac);
42
+ return {
43
+ json: JSON.stringify({
44
+ type: 'FRAME',
45
+ frameId: args.frameId,
46
+ timestamp: ts,
47
+ image: args.jpegBase64,
48
+ mac: macHex
49
+ }),
50
+ timestamp: ts
51
+ };
52
+ }
53
+ //# sourceMappingURL=hmac.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["hmac","sha256","base64ToBytes","bytesToHexLower","importHmacKey","base64","raw","buildSignedFrameEnvelope","args","ts","timestamp","Date","now","digest","jpegBytes","digestHex","canonical","sessionId","frameId","mac","key","TextEncoder","encode","macHex","json","JSON","stringify","type","image","jpegBase64"],"sourceRoot":"../../../src","sources":["utils/hmac.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,QAAQ,oBAAoB;AACzC,SAASC,MAAM,QAAQ,sBAAsB;AAC7C,SAASC,aAAa,EAAEC,eAAe,QAAQ,UAAU;AAMzD;AACA,OAAO,SAASC,aAAaA,CAACC,MAAc,EAAW;EACrD,OAAO;IAAEC,GAAG,EAAEJ,aAAa,CAACG,MAAM;EAAE,CAAC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,wBAAwBA,CAACC,IAQxC,EAAuC;EACtC,MAAMC,EAAE,GAAGD,IAAI,CAACE,SAAS,IAAIC,IAAI,CAACC,GAAG,CAAC,CAAC;EACvC,MAAMC,MAAM,GAAGZ,MAAM,CAACO,IAAI,CAACM,SAAS,CAAC;EACrC,MAAMC,SAAS,GAAGZ,eAAe,CAACU,MAAM,CAAC;EACzC,MAAMG,SAAS,GAAG,GAAGR,IAAI,CAACS,SAAS,KAAKT,IAAI,CAACU,OAAO,KAAKT,EAAE,KAAKM,SAAS,EAAE;EAC3E,MAAMI,GAAG,GAAGnB,IAAI,CAACC,MAAM,EAAEO,IAAI,CAACY,GAAG,CAACd,GAAG,EAAE,IAAIe,WAAW,CAAC,CAAC,CAACC,MAAM,CAACN,SAAS,CAAC,CAAC;EAC3E,MAAMO,MAAM,GAAGpB,eAAe,CAACgB,GAAG,CAAC;EACnC,OAAO;IACLK,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;MACnBC,IAAI,EAAE,OAAO;MACbT,OAAO,EAAEV,IAAI,CAACU,OAAO;MACrBR,SAAS,EAAED,EAAE;MACbmB,KAAK,EAAEpB,IAAI,CAACqB,UAAU;MACtBV,GAAG,EAAEI;IACP,CAAC,CAAC;IACFb,SAAS,EAAED;EACb,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * ISO 3166-1 alpha-2 country list with localized display names.
5
+ *
6
+ * Strategy:
7
+ * 1. If `Intl.DisplayNames` is available (full ICU build, polyfilled
8
+ * Hermes, native iOS runtime, …), use it — it covers every BCP-47
9
+ * locale and stays current with ICU updates.
10
+ * 2. Otherwise fall back to a built-in map covering all 249 ISO 3166-1
11
+ * alpha-2 codes in `es` and `en`. The names match the official
12
+ * Spanish convention (es. wikipedia.org/wiki/ISO_3166-1) and the ISO
13
+ * English short name. Hermes default builds (which ship without
14
+ * `Intl.DisplayNames`) get full localized names without needing
15
+ * `@formatjs/intl-displaynames`.
16
+ */
17
+
18
+ import ISO_CODES from '../data/iso3166Alpha2Codes.json';
19
+ import COUNTRY_NAMES from '../data/iso3166CountryNames.json';
20
+ import { log } from './log';
21
+ function intlLocaleTag(locale) {
22
+ if (locale === 'en') return 'en';
23
+ /** Rioplatense UI uses Spanish country names with regional formatting. */
24
+ if (locale === 'ar') return 'es-AR';
25
+ return 'es';
26
+ }
27
+ let didWarnAboutFallback = false;
28
+ const NAMES_MAP = COUNTRY_NAMES;
29
+ function fallbackName(code, lang) {
30
+ const entry = NAMES_MAP[code.toUpperCase()];
31
+ if (!entry || entry.length === 0) return code;
32
+ // [0] = es, [1] = en. Fall through to ES (or to the code itself) if the
33
+ // requested locale is missing.
34
+ return (lang === 'en' ? entry[1] : entry[0]) ?? entry[0] ?? code;
35
+ }
36
+ function buildResolver(localeTag) {
37
+ const lang = localeTag.toLowerCase().startsWith('en') ? 'en' : 'es';
38
+ const intl = globalThis.Intl;
39
+ if (intl && typeof intl.DisplayNames === 'function') {
40
+ try {
41
+ const dn = new intl.DisplayNames([localeTag], {
42
+ type: 'region'
43
+ });
44
+ // Wrap so unknown codes still fall back to the built-in map.
45
+ return {
46
+ of: code => dn.of(code) ?? fallbackName(code, lang)
47
+ };
48
+ } catch (err) {
49
+ // Some Hermes builds expose DisplayNames but throw on construction —
50
+ // fall through to the built-in map.
51
+ log.warn('[iso3166] Intl.DisplayNames threw, falling back', err);
52
+ }
53
+ }
54
+ if (!didWarnAboutFallback) {
55
+ didWarnAboutFallback = true;
56
+ log.info('[iso3166] Using built-in ISO 3166-1 country names (Intl.DisplayNames unavailable). ' + 'All 249 alpha-2 codes resolved via the bundled map.');
57
+ }
58
+ return {
59
+ of: code => fallbackName(code, lang)
60
+ };
61
+ }
62
+
63
+ /**
64
+ * Returns all ISO 3166-1 alpha-2 countries sorted by localized display name.
65
+ */
66
+ export function listIso3166CountriesForUi(locale) {
67
+ const tag = intlLocaleTag(locale);
68
+ const codes = ISO_CODES;
69
+ const dn = buildResolver(tag);
70
+ const collator = globalThis.Intl?.Collator;
71
+ return codes.map(code => ({
72
+ code,
73
+ name: dn.of(code) ?? code
74
+ })).sort((a, b) => {
75
+ if (collator) {
76
+ return new collator(tag, {
77
+ sensitivity: 'base'
78
+ }).compare(a.name, b.name);
79
+ }
80
+ return a.name.localeCompare(b.name);
81
+ });
82
+ }
83
+
84
+ /**
85
+ * Filters by country name or code (case-insensitive).
86
+ */
87
+ export function filterIso3166Countries(options, query) {
88
+ const q = query.trim().toLowerCase();
89
+ if (q.length === 0) return [...options];
90
+ return options.filter(o => o.code.toLowerCase().includes(q) || o.name.toLowerCase().includes(q));
91
+ }
92
+ //# sourceMappingURL=iso3166Countries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ISO_CODES","COUNTRY_NAMES","log","intlLocaleTag","locale","didWarnAboutFallback","NAMES_MAP","fallbackName","code","lang","entry","toUpperCase","length","buildResolver","localeTag","toLowerCase","startsWith","intl","globalThis","Intl","DisplayNames","dn","type","of","err","warn","info","listIso3166CountriesForUi","tag","codes","collator","Collator","map","name","sort","a","b","sensitivity","compare","localeCompare","filterIso3166Countries","options","query","q","trim","filter","o","includes"],"sourceRoot":"../../../src","sources":["utils/iso3166Countries.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Helpers for reading a captured photo into JPEG bytes.
5
+ *
6
+ * Vision-Camera writes captures to a `file://` path; consumers convert that
7
+ * path into either base64 (for the Iris HMAC envelope) or raw bytes (for
8
+ * binary WebSocket frames + direct PUT to signed URLs).
9
+ *
10
+ * Why not `fetch(uri).then(r => r.blob()).then(b => b.arrayBuffer())`?
11
+ *
12
+ * React Native's Blob polyfill does NOT implement `Blob.arrayBuffer()`
13
+ * (it's web-only). Calling it crashes with
14
+ * `TypeError: blob.arrayBuffer is not a function`. The reliable path on
15
+ * iOS + Android is the native `File.arrayBuffer()` from
16
+ * `expo-file-system` v19+, which reads directly from disk into an
17
+ * ArrayBuffer without going through the JS Blob bridge.
18
+ */
19
+
20
+ import { File } from 'expo-file-system';
21
+ import { bytesToBase64 } from './base64';
22
+ /**
23
+ * Reads a `file://` URI into JPEG bytes + base64 representation.
24
+ *
25
+ * Accepts both forms vision-camera returns (`/var/mobile/...` without a
26
+ * scheme on iOS; `file:///data/...` on Android). Normalises to `file://`.
27
+ */
28
+ export async function readJpegFromUri(uri) {
29
+ const normalised = uri.startsWith('file://') || uri.startsWith('http') ? uri : `file://${uri}`;
30
+ const file = new File(normalised);
31
+ const buf = await file.arrayBuffer();
32
+ const bytes = new Uint8Array(buf);
33
+ const base64 = bytesToBase64(bytes);
34
+ return {
35
+ bytes,
36
+ base64,
37
+ byteLength: bytes.byteLength
38
+ };
39
+ }
40
+ //# sourceMappingURL=jpegFromUri.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["File","bytesToBase64","readJpegFromUri","uri","normalised","startsWith","file","buf","arrayBuffer","bytes","Uint8Array","base64","byteLength"],"sourceRoot":"../../../src","sources":["utils/jpegFromUri.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,QAAQ,kBAAkB;AACvC,SAASC,aAAa,QAAQ,UAAU;AAQxC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,eAAeA,CAACC,GAAW,EAAwB;EACvE,MAAMC,UAAU,GAAGD,GAAG,CAACE,UAAU,CAAC,SAAS,CAAC,IAAIF,GAAG,CAACE,UAAU,CAAC,MAAM,CAAC,GAClEF,GAAG,GACH,UAAUA,GAAG,EAAE;EACnB,MAAMG,IAAI,GAAG,IAAIN,IAAI,CAACI,UAAU,CAAC;EACjC,MAAMG,GAAG,GAAG,MAAMD,IAAI,CAACE,WAAW,CAAC,CAAC;EACpC,MAAMC,KAAK,GAAG,IAAIC,UAAU,CAACH,GAAG,CAAC;EACjC,MAAMI,MAAM,GAAGV,aAAa,CAACQ,KAAK,CAAC;EACnC,OAAO;IAAEA,KAAK;IAAEE,MAAM;IAAEC,UAAU,EAAEH,KAAK,CAACG;EAAW,CAAC;AACxD","ignoreList":[]}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Thin wrapper around `expo-keep-awake` that prevents the device from
5
+ * locking the screen while the SDK is in the foreground. Without this,
6
+ * Android's screen-timeout policy kicks in during camera-heavy steps
7
+ * (LIVENESS_MATCH, DOCUMENTS_OCR) where the user is holding still and
8
+ * not interacting with the touchscreen — the screen dims, then locks,
9
+ * and the session is interrupted.
10
+ *
11
+ * Implementation is `require`-based so the SDK keeps working in bare
12
+ * React Native setups where `expo-keep-awake` may not be installed —
13
+ * in that case both calls degrade to no-ops and the host is expected to
14
+ * manage the wake lock itself.
15
+ */
16
+
17
+ import { log } from './log';
18
+ const TAG = 'velion-onboarding-sdk';
19
+ let activated = false;
20
+ function loadModule() {
21
+ try {
22
+ // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
23
+ const mod = require('expo-keep-awake');
24
+ return mod?.default ?? mod;
25
+ } catch {
26
+ return null;
27
+ }
28
+ }
29
+ export function activateScreenKeepAwake() {
30
+ if (activated) return;
31
+ const mod = loadModule();
32
+ if (!mod?.activateKeepAwakeAsync) {
33
+ log.info('[keep-awake] expo-keep-awake unavailable; host should manage the wake lock if screen-lock is unwanted during the flow');
34
+ return;
35
+ }
36
+ activated = true;
37
+ void mod.activateKeepAwakeAsync(TAG).catch(err => {
38
+ activated = false;
39
+ log.warn('[keep-awake] activate failed', err);
40
+ });
41
+ }
42
+ export function deactivateScreenKeepAwake() {
43
+ if (!activated) return;
44
+ const mod = loadModule();
45
+ activated = false;
46
+ if (!mod?.deactivateKeepAwake) return;
47
+ try {
48
+ void mod.deactivateKeepAwake(TAG);
49
+ } catch (err) {
50
+ log.warn('[keep-awake] deactivate failed', err);
51
+ }
52
+ }
53
+ //# sourceMappingURL=keepAwake.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["log","TAG","activated","loadModule","mod","require","default","activateScreenKeepAwake","activateKeepAwakeAsync","info","catch","err","warn","deactivateScreenKeepAwake","deactivateKeepAwake"],"sourceRoot":"../../../src","sources":["utils/keepAwake.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,GAAG,QAAQ,OAAO;AAE3B,MAAMC,GAAG,GAAG,uBAAuB;AAEnC,IAAIC,SAAS,GAAG,KAAK;AAOrB,SAASC,UAAUA,CAAA,EAA+B;EAChD,IAAI;IACF;IACA,MAAMC,GAAG,GAAGC,OAAO,CAAC,iBAAiB,CAAC;IACtC,OAAQD,GAAG,EAAEE,OAAO,IAAIF,GAAG;EAC7B,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF;AAEA,OAAO,SAASG,uBAAuBA,CAAA,EAAS;EAC9C,IAAIL,SAAS,EAAE;EACf,MAAME,GAAG,GAAGD,UAAU,CAAC,CAAC;EACxB,IAAI,CAACC,GAAG,EAAEI,sBAAsB,EAAE;IAChCR,GAAG,CAACS,IAAI,CACN,uHACF,CAAC;IACD;EACF;EACAP,SAAS,GAAG,IAAI;EAChB,KAAKE,GAAG,CAACI,sBAAsB,CAACP,GAAG,CAAC,CAACS,KAAK,CAAEC,GAAY,IAAK;IAC3DT,SAAS,GAAG,KAAK;IACjBF,GAAG,CAACY,IAAI,CAAC,8BAA8B,EAAED,GAAG,CAAC;EAC/C,CAAC,CAAC;AACJ;AAEA,OAAO,SAASE,yBAAyBA,CAAA,EAAS;EAChD,IAAI,CAACX,SAAS,EAAE;EAChB,MAAME,GAAG,GAAGD,UAAU,CAAC,CAAC;EACxBD,SAAS,GAAG,KAAK;EACjB,IAAI,CAACE,GAAG,EAAEU,mBAAmB,EAAE;EAC/B,IAAI;IACF,KAAKV,GAAG,CAACU,mBAAmB,CAACb,GAAG,CAAC;EACnC,CAAC,CAAC,OAAOU,GAAG,EAAE;IACZX,GAAG,CAACY,IAAI,CAAC,gCAAgC,EAAED,GAAG,CAAC;EACjD;AACF","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * @fileoverview Lightweight log gate.
5
+ *
6
+ * `log.info()` is silent unless either:
7
+ * - `__DEV__` is true (Metro bundler injects this in development), or
8
+ * - the host explicitly opted in via `VelionConfig.debug = true`.
9
+ *
10
+ * `log.warn()` / `log.error()` always go through. They sit on top of `console.*`
11
+ * so the host's logging pipeline (Sentry, Datadog, …) keeps capturing them.
12
+ */
13
+
14
+ let runtimeDebugEnabled = false;
15
+
16
+ /** Enables verbose logging at runtime. Called from VelionOnboarding when `config.debug === true`. */
17
+ export function setDebugEnabled(enabled) {
18
+ runtimeDebugEnabled = enabled;
19
+ }
20
+
21
+ /** Internal — true when `log.info` should produce output. */
22
+ function infoEnabled() {
23
+ return typeof __DEV__ !== 'undefined' && __DEV__ === true || runtimeDebugEnabled;
24
+ }
25
+ export const log = {
26
+ info(...args) {
27
+ if (!infoEnabled()) return;
28
+ console.info('[VelionSDK]', ...args);
29
+ },
30
+ warn(...args) {
31
+ console.warn('[VelionSDK]', ...args);
32
+ },
33
+ error(...args) {
34
+ console.error('[VelionSDK]', ...args);
35
+ }
36
+ };
37
+ //# sourceMappingURL=log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["runtimeDebugEnabled","setDebugEnabled","enabled","infoEnabled","__DEV__","log","info","args","console","warn","error"],"sourceRoot":"../../../src","sources":["utils/log.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,IAAIA,mBAAmB,GAAG,KAAK;;AAE/B;AACA,OAAO,SAASC,eAAeA,CAACC,OAAgB,EAAQ;EACtDF,mBAAmB,GAAGE,OAAO;AAC/B;;AAEA;AACA,SAASC,WAAWA,CAAA,EAAY;EAC9B,OAAQ,OAAOC,OAAO,KAAK,WAAW,IAAIA,OAAO,KAAK,IAAI,IAAKJ,mBAAmB;AACpF;AAEA,OAAO,MAAMK,GAAG,GAAG;EACjBC,IAAIA,CAAC,GAAGC,IAAe,EAAQ;IAC7B,IAAI,CAACJ,WAAW,CAAC,CAAC,EAAE;IACpBK,OAAO,CAACF,IAAI,CAAC,aAAa,EAAE,GAAGC,IAAI,CAAC;EACtC,CAAC;EACDE,IAAIA,CAAC,GAAGF,IAAe,EAAQ;IAC7BC,OAAO,CAACC,IAAI,CAAC,aAAa,EAAE,GAAGF,IAAI,CAAC;EACtC,CAAC;EACDG,KAAKA,CAAC,GAAGH,IAAe,EAAQ;IAC9BC,OAAO,CAACE,KAAK,CAAC,aAAa,EAAE,GAAGH,IAAI,CAAC;EACvC;AACF,CAAC","ignoreList":[]}