@smileid/usesmileid 12.0.1 → 12.1.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 (1230) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +66 -40
  3. package/dist/camera/camera_configuration.d.ts +0 -1
  4. package/dist/camera/camera_configuration.js +1 -2
  5. package/dist/camera/camera_defaults.d.ts +3 -2
  6. package/dist/camera/camera_defaults.js +1 -24
  7. package/dist/camera/camera_lens.d.ts +1 -5
  8. package/dist/camera/camera_lens.js +1 -12
  9. package/dist/camera/camera_permissions.d.ts +2 -7
  10. package/dist/camera/camera_permissions.js +1 -23
  11. package/dist/camera/document_image_pipeline.d.ts +0 -1
  12. package/dist/camera/document_image_pipeline.js +1 -70
  13. package/dist/camera/document_resize_target.d.ts +0 -1
  14. package/dist/camera/document_resize_target.js +1 -17
  15. package/dist/camera/focus_state.d.ts +0 -1
  16. package/dist/camera/focus_state.js +1 -13
  17. package/dist/camera/kamera_config_factory.d.ts +8 -0
  18. package/dist/camera/kamera_config_factory.js +1 -0
  19. package/dist/camera/kamera_error_mapping.d.ts +11 -0
  20. package/dist/camera/kamera_error_mapping.js +1 -0
  21. package/dist/camera/use_kamera_camera_permission.d.ts +8 -0
  22. package/dist/camera/use_kamera_camera_permission.js +1 -0
  23. package/dist/camera/use_kamera_orientation.d.ts +9 -0
  24. package/dist/camera/use_kamera_orientation.js +1 -0
  25. package/dist/camera/use_smile_id_frame_stream.d.ts +0 -1
  26. package/dist/camera/use_smile_id_frame_stream.js +1 -93
  27. package/dist/camera/use_smile_id_kamera_camera_system.d.ts +64 -0
  28. package/dist/camera/use_smile_id_kamera_camera_system.js +1 -0
  29. package/dist/camera/use_smile_id_kamera_preview.d.ts +12 -0
  30. package/dist/camera/use_smile_id_kamera_preview.js +1 -0
  31. package/dist/core/exception/agent_mode_with_enhanced_liveness_exception.d.ts +0 -1
  32. package/dist/core/exception/agent_mode_with_enhanced_liveness_exception.js +1 -17
  33. package/dist/core/exception/builder_validation_exception.d.ts +0 -1
  34. package/dist/core/exception/builder_validation_exception.js +1 -37
  35. package/dist/core/exception/capture_validation_exceptions.d.ts +0 -1
  36. package/dist/core/exception/capture_validation_exceptions.js +1 -10
  37. package/dist/core/exception/consent_validation_exceptions.d.ts +0 -1
  38. package/dist/core/exception/consent_validation_exceptions.js +1 -8
  39. package/dist/core/exception/duplicate_screen_type_exception.d.ts +0 -1
  40. package/dist/core/exception/duplicate_screen_type_exception.js +1 -20
  41. package/dist/core/exception/empty_screens_block_exception.d.ts +0 -1
  42. package/dist/core/exception/empty_screens_block_exception.js +1 -17
  43. package/dist/core/exception/flow_exceptions.d.ts +4 -3
  44. package/dist/core/exception/flow_exceptions.js +1 -37
  45. package/dist/core/exception/index.d.ts +3 -2
  46. package/dist/core/exception/index.js +1 -54
  47. package/dist/core/exception/invalid_consent_config_exception.d.ts +0 -1
  48. package/dist/core/exception/invalid_consent_config_exception.js +1 -18
  49. package/dist/core/exception/invalid_consent_information_exception.d.ts +0 -1
  50. package/dist/core/exception/invalid_consent_information_exception.js +1 -19
  51. package/dist/core/exception/invalid_document_capture_config_exception.d.ts +0 -1
  52. package/dist/core/exception/invalid_document_capture_config_exception.js +1 -20
  53. package/dist/core/exception/invalid_field_value_exception.d.ts +0 -1
  54. package/dist/core/exception/invalid_field_value_exception.js +1 -20
  55. package/dist/core/exception/invalid_job_type_screen_config_exception.d.ts +1 -1
  56. package/dist/core/exception/invalid_job_type_screen_config_exception.js +1 -61
  57. package/dist/core/exception/invalid_missing_capture_type_exception.d.ts +0 -1
  58. package/dist/core/exception/invalid_missing_capture_type_exception.js +1 -17
  59. package/dist/core/exception/invalid_screen_order_exception.d.ts +0 -1
  60. package/dist/core/exception/invalid_screen_order_exception.js +1 -22
  61. package/dist/core/exception/invalid_selfie_capture_config_exception.d.ts +0 -1
  62. package/dist/core/exception/invalid_selfie_capture_config_exception.js +1 -20
  63. package/dist/core/exception/issue_severity.d.ts +0 -1
  64. package/dist/core/exception/issue_severity.js +1 -13
  65. package/dist/core/exception/job_validation_exceptions.d.ts +0 -1
  66. package/dist/core/exception/job_validation_exceptions.js +1 -12
  67. package/dist/core/exception/liveness_frame_count_exception.d.ts +0 -1
  68. package/dist/core/exception/liveness_frame_count_exception.js +1 -19
  69. package/dist/core/exception/missing_capture_for_preview_exception.d.ts +0 -1
  70. package/dist/core/exception/missing_capture_for_preview_exception.js +1 -22
  71. package/dist/core/exception/missing_job_type_exception.d.ts +1 -4
  72. package/dist/core/exception/missing_job_type_exception.js +1 -17
  73. package/dist/core/exception/missing_ml_configuration_block_exception.d.ts +0 -1
  74. package/dist/core/exception/missing_ml_configuration_block_exception.js +1 -19
  75. package/dist/core/exception/missing_network_configuration_block_exception.d.ts +0 -1
  76. package/dist/core/exception/missing_network_configuration_block_exception.js +1 -19
  77. package/dist/core/exception/missing_partner_config_exception.d.ts +4 -1
  78. package/dist/core/exception/missing_partner_config_exception.js +1 -35
  79. package/dist/core/exception/missing_required_field_exception.d.ts +0 -1
  80. package/dist/core/exception/missing_required_field_exception.js +1 -18
  81. package/dist/core/exception/screen_config_validation_exceptions.d.ts +0 -1
  82. package/dist/core/exception/screen_config_validation_exceptions.js +1 -11
  83. package/dist/core/exception/unused_job_params_exception.d.ts +16 -0
  84. package/dist/core/exception/unused_job_params_exception.js +1 -0
  85. package/dist/core/exception/use_smile_id_attestation_exception.d.ts +0 -1
  86. package/dist/core/exception/use_smile_id_attestation_exception.js +1 -12
  87. package/dist/core/exception/use_smile_id_builder_exception.d.ts +0 -1
  88. package/dist/core/exception/use_smile_id_builder_exception.js +1 -19
  89. package/dist/core/exception/use_smile_id_camera_exception.d.ts +0 -1
  90. package/dist/core/exception/use_smile_id_camera_exception.js +1 -13
  91. package/dist/core/exception/use_smile_id_camera_surface_exception.d.ts +15 -0
  92. package/dist/core/exception/use_smile_id_camera_surface_exception.js +1 -0
  93. package/dist/core/exception/use_smile_id_error_code.d.ts +8 -1
  94. package/dist/core/exception/use_smile_id_error_code.js +1 -71
  95. package/dist/core/exception/use_smile_id_exception.d.ts +0 -1
  96. package/dist/core/exception/use_smile_id_exception.js +1 -39
  97. package/dist/core/exception/use_smile_id_general_exception.d.ts +0 -1
  98. package/dist/core/exception/use_smile_id_general_exception.js +1 -13
  99. package/dist/core/exception/use_smile_id_network_exception.d.ts +0 -1
  100. package/dist/core/exception/use_smile_id_network_exception.js +1 -203
  101. package/dist/core/exception/use_smile_id_validation_exception.d.ts +0 -1
  102. package/dist/core/exception/use_smile_id_validation_exception.js +1 -13
  103. package/dist/core/models/config.d.ts +8 -1
  104. package/dist/core/models/config.js +1 -2
  105. package/dist/core/models/document_capture_mode.d.ts +0 -1
  106. package/dist/core/models/document_capture_mode.js +1 -47
  107. package/dist/core/models/document_type.d.ts +5 -1
  108. package/dist/core/models/document_type.js +1 -47
  109. package/dist/core/models/flow_step.d.ts +0 -1
  110. package/dist/core/models/flow_step.js +1 -16
  111. package/dist/core/models/global_privacy_control.d.ts +0 -1
  112. package/dist/core/models/global_privacy_control.js +1 -39
  113. package/dist/core/models/head_turn_direction.d.ts +0 -1
  114. package/dist/core/models/head_turn_direction.js +1 -14
  115. package/dist/core/models/job_type.d.ts +0 -1
  116. package/dist/core/models/job_type.js +1 -43
  117. package/dist/core/models/ml_config.d.ts +0 -1
  118. package/dist/core/models/ml_config.js +1 -27
  119. package/dist/core/models/network_config.d.ts +0 -1
  120. package/dist/core/models/network_config.js +1 -41
  121. package/dist/core/models/params.d.ts +0 -1
  122. package/dist/core/models/params.js +1 -5
  123. package/dist/core/models/result.d.ts +0 -1
  124. package/dist/core/models/result.js +1 -17
  125. package/dist/data/api/auth/token_holder.d.ts +0 -1
  126. package/dist/data/api/auth/token_holder.js +1 -67
  127. package/dist/data/api/interceptors/gzip_interceptor.d.ts +0 -1
  128. package/dist/data/api/interceptors/gzip_interceptor.js +1 -29
  129. package/dist/data/api/interceptors/logging_interceptor.d.ts +0 -1
  130. package/dist/data/api/interceptors/logging_interceptor.js +1 -108
  131. package/dist/data/api/interceptors/sensitive_headers.d.ts +0 -1
  132. package/dist/data/api/interceptors/sensitive_headers.js +1 -42
  133. package/dist/data/api/interceptors/smile_auth_interceptor.d.ts +0 -1
  134. package/dist/data/api/interceptors/smile_auth_interceptor.js +1 -57
  135. package/dist/data/api/interceptors/smile_integrity_interceptor.d.ts +0 -1
  136. package/dist/data/api/interceptors/smile_integrity_interceptor.js +1 -79
  137. package/dist/data/api/interceptors/smile_request_mac_interceptor.d.ts +0 -1
  138. package/dist/data/api/interceptors/smile_request_mac_interceptor.js +1 -77
  139. package/dist/data/api/interceptors/token_refresh_interceptor.d.ts +0 -1
  140. package/dist/data/api/interceptors/token_refresh_interceptor.js +1 -58
  141. package/dist/data/api/smile_id_api.d.ts +4 -1
  142. package/dist/data/api/smile_id_api.js +1 -371
  143. package/dist/data/compression/compressible_asset.d.ts +0 -1
  144. package/dist/data/compression/compressible_asset.js +1 -34
  145. package/dist/data/compression/payload_compression_config.d.ts +0 -1
  146. package/dist/data/compression/payload_compression_config.js +1 -52
  147. package/dist/data/compression/payload_compression_runner.d.ts +8 -1
  148. package/dist/data/compression/payload_compression_runner.js +1 -55
  149. package/dist/data/compression/payload_compressor.d.ts +0 -1
  150. package/dist/data/compression/payload_compressor.js +1 -126
  151. package/dist/data/compression/uri_compressible_asset.d.ts +0 -1
  152. package/dist/data/compression/uri_compressible_asset.js +1 -77
  153. package/dist/data/dsl/builder/cache_config_builder.d.ts +0 -1
  154. package/dist/data/dsl/builder/cache_config_builder.js +1 -24
  155. package/dist/data/dsl/builder/config_builder.d.ts +0 -1
  156. package/dist/data/dsl/builder/config_builder.js +1 -137
  157. package/dist/data/dsl/builder/interceptor_config_builder.d.ts +0 -1
  158. package/dist/data/dsl/builder/interceptor_config_builder.js +1 -71
  159. package/dist/data/dsl/builder/retry_config_builder.d.ts +0 -1
  160. package/dist/data/dsl/builder/retry_config_builder.js +1 -46
  161. package/dist/data/dsl/builder/timeout_config_builder.d.ts +0 -1
  162. package/dist/data/dsl/builder/timeout_config_builder.js +1 -26
  163. package/dist/data/dsl/use_smile_id_network_builder.d.ts +0 -1
  164. package/dist/data/dsl/use_smile_id_network_builder.js +1 -83
  165. package/dist/data/factory/networking_factory.d.ts +0 -1
  166. package/dist/data/factory/networking_factory.js +1 -174
  167. package/dist/data/model/image_dimensions.d.ts +0 -1
  168. package/dist/data/model/image_dimensions.js +1 -2
  169. package/dist/data/model/job_request.d.ts +32 -18
  170. package/dist/data/model/job_request.js +1 -2
  171. package/dist/data/model/job_submission_response.d.ts +0 -1
  172. package/dist/data/model/job_submission_response.js +1 -2
  173. package/dist/data/model/sdk_config.d.ts +0 -1
  174. package/dist/data/model/sdk_config.js +1 -68
  175. package/dist/data/model/sdk_config_capture.d.ts +0 -1
  176. package/dist/data/model/sdk_config_capture.js +1 -69
  177. package/dist/data/model/sdk_config_source.d.ts +0 -1
  178. package/dist/data/model/sdk_config_source.js +1 -24
  179. package/dist/data/model/token_payload.d.ts +77 -0
  180. package/dist/data/model/token_payload.js +1 -0
  181. package/dist/data/model/user_details_payload.d.ts +38 -0
  182. package/dist/data/model/user_details_payload.js +1 -0
  183. package/dist/data/repository/use_smile_id_repository.d.ts +2 -2
  184. package/dist/data/repository/use_smile_id_repository.js +1 -2
  185. package/dist/data/repository/use_smile_id_repository_impl.d.ts +2 -2
  186. package/dist/data/repository/use_smile_id_repository_impl.js +1 -149
  187. package/dist/data/security/request_canonicalizer.d.ts +0 -1
  188. package/dist/data/security/request_canonicalizer.js +1 -132
  189. package/dist/data/security/request_timestamp.d.ts +0 -1
  190. package/dist/data/security/request_timestamp.js +1 -13
  191. package/dist/data/security/security_policy.d.ts +0 -1
  192. package/dist/data/security/security_policy.js +1 -61
  193. package/dist/data/security/signing_crypto.d.ts +0 -1
  194. package/dist/data/security/signing_crypto.js +1 -145
  195. package/dist/data/security/smile_id_crypto_error.d.ts +0 -1
  196. package/dist/data/security/smile_id_crypto_error.js +1 -14
  197. package/dist/data/security/smile_id_crypto_manager.d.ts +0 -1
  198. package/dist/data/security/smile_id_crypto_manager.js +1 -40
  199. package/dist/data/smile_id_urls.d.ts +0 -1
  200. package/dist/data/smile_id_urls.js +1 -14
  201. package/dist/data/util/retry_util.d.ts +0 -1
  202. package/dist/data/util/retry_util.js +1 -74
  203. package/dist/data/util/use_smile_id_token_decoder.d.ts +15 -4
  204. package/dist/data/util/use_smile_id_token_decoder.js +1 -136
  205. package/dist/index.d.ts +3 -6
  206. package/dist/index.js +1 -142
  207. package/dist/l10n/strings_en.d.ts +21 -14
  208. package/dist/l10n/strings_en.js +2 -142
  209. package/dist/l10n/use_smile_id_localizations.d.ts +24 -10
  210. package/dist/l10n/use_smile_id_localizations.js +1 -490
  211. package/dist/l10n/use_smile_id_localizations_provider.d.ts +0 -1
  212. package/dist/l10n/use_smile_id_localizations_provider.js +1 -53
  213. package/dist/metadata/builder_configuration.d.ts +0 -1
  214. package/dist/metadata/builder_configuration.js +1 -35
  215. package/dist/metadata/captured_image_properties.d.ts +0 -1
  216. package/dist/metadata/captured_image_properties.js +1 -11
  217. package/dist/metadata/device_orientation_collector.d.ts +0 -1
  218. package/dist/metadata/device_orientation_collector.js +1 -66
  219. package/dist/metadata/document_image_origin.d.ts +0 -1
  220. package/dist/metadata/document_image_origin.js +1 -19
  221. package/dist/metadata/geolocation.d.ts +0 -1
  222. package/dist/metadata/geolocation.js +1 -40
  223. package/dist/metadata/metadata_configuration_mappers.d.ts +0 -1
  224. package/dist/metadata/metadata_configuration_mappers.js +1 -178
  225. package/dist/metadata/model_configuration.d.ts +0 -1
  226. package/dist/metadata/model_configuration.js +1 -44
  227. package/dist/metadata/optional_native_modules.d.ts +0 -1
  228. package/dist/metadata/optional_native_modules.js +1 -206
  229. package/dist/metadata/use_smile_id_metadata.d.ts +0 -1
  230. package/dist/metadata/use_smile_id_metadata.js +1 -188
  231. package/dist/metadata/use_smile_id_metadata_factory.d.ts +11 -1
  232. package/dist/metadata/use_smile_id_metadata_factory.js +1 -501
  233. package/dist/presentation/assets/si_document_green_book_hero_animation.json +4740 -0
  234. package/dist/presentation/assets/si_document_hero_animation.json +4870 -0
  235. package/dist/presentation/assets/si_document_hero_back_animation.json +2122 -0
  236. package/dist/presentation/assets/si_document_passport_hero_animation.json +14540 -0
  237. package/dist/presentation/assets/si_ess_all_directions_hero_animation.json +5906 -0
  238. package/dist/presentation/assets/si_ess_animation_all_directions.json +5906 -0
  239. package/dist/presentation/assets/si_selfie_hero_animation.json +1468 -0
  240. package/dist/presentation/assets/si_smile_to_capture_animation.json +1412 -0
  241. package/dist/presentation/assets/svg/document_shimmer_strings.d.ts +0 -1
  242. package/dist/presentation/assets/svg/document_shimmer_strings.js +1 -14
  243. package/dist/presentation/assets/svg/instruction_svg_strings.d.ts +0 -1
  244. package/dist/presentation/assets/svg/instruction_svg_strings.js +1 -32
  245. package/dist/presentation/assets/svg/svg_strings.d.ts +0 -1
  246. package/dist/presentation/assets/svg/svg_strings.js +15 -46
  247. package/dist/presentation/components/face_oval_defaults.d.ts +0 -1
  248. package/dist/presentation/components/face_oval_defaults.js +1 -41
  249. package/dist/presentation/components/helpers/animated_lottie_view.d.ts +0 -1
  250. package/dist/presentation/components/helpers/animated_lottie_view.js +1 -9
  251. package/dist/presentation/components/helpers/capture_instruction_animation_spec.d.ts +2 -1
  252. package/dist/presentation/components/helpers/capture_instruction_animation_spec.js +1 -47
  253. package/dist/presentation/components/helpers/captured_document_image_fit.d.ts +6 -0
  254. package/dist/presentation/components/helpers/captured_document_image_fit.js +1 -0
  255. package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.d.ts +0 -1
  256. package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.js +1 -44
  257. package/dist/presentation/components/helpers/scaled_oval_geometry.d.ts +0 -1
  258. package/dist/presentation/components/helpers/scaled_oval_geometry.js +1 -29
  259. package/dist/presentation/components/icons/index.d.ts +0 -1
  260. package/dist/presentation/components/icons/index.js +1 -117
  261. package/dist/presentation/components/status_indicator_state.d.ts +0 -1
  262. package/dist/presentation/components/status_indicator_state.js +1 -19
  263. package/dist/presentation/components/use_smile_id_attribution.d.ts +2 -1
  264. package/dist/presentation/components/use_smile_id_attribution.js +1 -25
  265. package/dist/presentation/components/use_smile_id_back_button.d.ts +2 -1
  266. package/dist/presentation/components/use_smile_id_back_button.js +1 -38
  267. package/dist/presentation/components/use_smile_id_button.d.ts +0 -1
  268. package/dist/presentation/components/use_smile_id_button.js +1 -63
  269. package/dist/presentation/components/use_smile_id_capture_content.d.ts +0 -1
  270. package/dist/presentation/components/use_smile_id_capture_content.js +1 -137
  271. package/dist/presentation/components/use_smile_id_capture_instruction_animation.d.ts +3 -4
  272. package/dist/presentation/components/use_smile_id_capture_instruction_animation.js +1 -50
  273. package/dist/presentation/components/use_smile_id_capture_spinner.d.ts +0 -1
  274. package/dist/presentation/components/use_smile_id_capture_spinner.js +1 -30
  275. package/dist/presentation/components/use_smile_id_captured_document_image.d.ts +4 -5
  276. package/dist/presentation/components/use_smile_id_captured_document_image.js +1 -39
  277. package/dist/presentation/components/use_smile_id_captured_image_oval.d.ts +0 -1
  278. package/dist/presentation/components/use_smile_id_captured_image_oval.js +1 -63
  279. package/dist/presentation/components/use_smile_id_card_surface.d.ts +0 -1
  280. package/dist/presentation/components/use_smile_id_card_surface.js +1 -37
  281. package/dist/presentation/components/use_smile_id_confirmation_buttons.d.ts +0 -1
  282. package/dist/presentation/components/use_smile_id_confirmation_buttons.js +1 -48
  283. package/dist/presentation/components/use_smile_id_consent_row.d.ts +0 -1
  284. package/dist/presentation/components/use_smile_id_consent_row.js +1 -32
  285. package/dist/presentation/components/use_smile_id_content_card.d.ts +0 -1
  286. package/dist/presentation/components/use_smile_id_content_card.js +1 -41
  287. package/dist/presentation/components/use_smile_id_document_capture_controls.d.ts +0 -1
  288. package/dist/presentation/components/use_smile_id_document_capture_controls.js +1 -120
  289. package/dist/presentation/components/use_smile_id_document_overlay.d.ts +0 -1
  290. package/dist/presentation/components/use_smile_id_document_overlay.js +1 -158
  291. package/dist/presentation/components/use_smile_id_document_shimmer.d.ts +0 -1
  292. package/dist/presentation/components/use_smile_id_document_shimmer.js +1 -23
  293. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.d.ts +0 -1
  294. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.js +1 -77
  295. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_direction_animation.d.ts +0 -1
  296. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_direction_animation.js +1 -21
  297. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_full_animation.d.ts +0 -1
  298. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_full_animation.js +1 -14
  299. package/dist/presentation/components/use_smile_id_expandable_icon.d.ts +0 -1
  300. package/dist/presentation/components/use_smile_id_expandable_icon.js +1 -55
  301. package/dist/presentation/components/use_smile_id_face_oval_image.d.ts +0 -1
  302. package/dist/presentation/components/use_smile_id_face_oval_image.js +1 -41
  303. package/dist/presentation/components/use_smile_id_face_overlay.d.ts +0 -1
  304. package/dist/presentation/components/use_smile_id_face_overlay.js +1 -194
  305. package/dist/presentation/components/use_smile_id_failed_content.d.ts +0 -1
  306. package/dist/presentation/components/use_smile_id_failed_content.js +1 -44
  307. package/dist/presentation/components/use_smile_id_guideline_thumbnail.d.ts +0 -1
  308. package/dist/presentation/components/use_smile_id_guideline_thumbnail.js +1 -179
  309. package/dist/presentation/components/use_smile_id_instructions_hero.d.ts +0 -1
  310. package/dist/presentation/components/use_smile_id_instructions_hero.js +1 -164
  311. package/dist/presentation/components/use_smile_id_learn_more_content.d.ts +0 -1
  312. package/dist/presentation/components/use_smile_id_learn_more_content.js +1 -70
  313. package/dist/presentation/components/use_smile_id_loading_content.d.ts +0 -1
  314. package/dist/presentation/components/use_smile_id_loading_content.js +1 -31
  315. package/dist/presentation/components/use_smile_id_loading_indicator.d.ts +0 -1
  316. package/dist/presentation/components/use_smile_id_loading_indicator.js +1 -48
  317. package/dist/presentation/components/use_smile_id_oval_border_palette.d.ts +0 -1
  318. package/dist/presentation/components/use_smile_id_oval_border_palette.js +1 -49
  319. package/dist/presentation/components/use_smile_id_partner_icon.d.ts +3 -1
  320. package/dist/presentation/components/use_smile_id_partner_icon.js +1 -34
  321. package/dist/presentation/components/use_smile_id_processing_center_indicator.d.ts +0 -1
  322. package/dist/presentation/components/use_smile_id_processing_center_indicator.js +1 -44
  323. package/dist/presentation/components/use_smile_id_rounded_checkbox.d.ts +0 -1
  324. package/dist/presentation/components/use_smile_id_rounded_checkbox.js +1 -41
  325. package/dist/presentation/components/use_smile_id_status_indicator.d.ts +0 -1
  326. package/dist/presentation/components/use_smile_id_status_indicator.js +1 -22
  327. package/dist/presentation/components/use_smile_id_success_content.d.ts +0 -1
  328. package/dist/presentation/components/use_smile_id_success_content.js +1 -39
  329. package/dist/presentation/flow/analytics/use_smile_id_analytics_event.d.ts +0 -1
  330. package/dist/presentation/flow/analytics/use_smile_id_analytics_event.js +1 -71
  331. package/dist/presentation/flow/config/attribution_resolver.d.ts +17 -0
  332. package/dist/presentation/flow/config/attribution_resolver.js +1 -0
  333. package/dist/presentation/flow/config/flow_configuration.d.ts +0 -1
  334. package/dist/presentation/flow/config/flow_configuration.js +1 -2
  335. package/dist/presentation/flow/dsl/builder/config_builder.d.ts +5 -1
  336. package/dist/presentation/flow/dsl/builder/config_builder.js +1 -50
  337. package/dist/presentation/flow/dsl/builder/ml_builder.d.ts +0 -1
  338. package/dist/presentation/flow/dsl/builder/ml_builder.js +1 -164
  339. package/dist/presentation/flow/dsl/builder/screens_builder.d.ts +3 -27
  340. package/dist/presentation/flow/dsl/builder/screens_builder.js +1 -217
  341. package/dist/presentation/flow/dsl/builder/theme_builder.d.ts +0 -1
  342. package/dist/presentation/flow/dsl/builder/theme_builder.js +1 -83
  343. package/dist/presentation/flow/dsl/flow_build_result.d.ts +0 -1
  344. package/dist/presentation/flow/dsl/flow_build_result.js +1 -2
  345. package/dist/presentation/flow/dsl/use_smile_id_builder.d.ts +0 -1
  346. package/dist/presentation/flow/dsl/use_smile_id_builder.js +1 -49
  347. package/dist/presentation/flow/dsl/use_smile_id_flow_builder.d.ts +0 -1
  348. package/dist/presentation/flow/dsl/use_smile_id_flow_builder.js +1 -334
  349. package/dist/presentation/flow/flow_navigation_context.d.ts +0 -1
  350. package/dist/presentation/flow/flow_navigation_context.js +1 -34
  351. package/dist/presentation/flow/flow_navigation_manager.d.ts +19 -3
  352. package/dist/presentation/flow/flow_navigation_manager.js +1 -903
  353. package/dist/presentation/flow/graph/screen_renderer.d.ts +0 -1
  354. package/dist/presentation/flow/graph/screen_renderer.js +1 -31
  355. package/dist/presentation/flow/graph/screen_transition.d.ts +8 -0
  356. package/dist/presentation/flow/graph/screen_transition.js +1 -0
  357. package/dist/presentation/flow/job_submission_state.d.ts +0 -1
  358. package/dist/presentation/flow/job_submission_state.js +1 -2
  359. package/dist/presentation/flow/model/instruction_guideline.d.ts +0 -1
  360. package/dist/presentation/flow/model/instruction_guideline.js +1 -2
  361. package/dist/presentation/flow/model/instructions_defaults.d.ts +0 -1
  362. package/dist/presentation/flow/model/instructions_defaults.js +1 -130
  363. package/dist/presentation/flow/screen/helpers/analyzer_lifecycle.d.ts +18 -0
  364. package/dist/presentation/flow/screen/helpers/analyzer_lifecycle.js +1 -0
  365. package/dist/presentation/flow/screen/helpers/face_session_config.d.ts +0 -1
  366. package/dist/presentation/flow/screen/helpers/face_session_config.js +1 -65
  367. package/dist/presentation/flow/screen/helpers/failure_message.d.ts +3 -0
  368. package/dist/presentation/flow/screen/helpers/failure_message.js +1 -0
  369. package/dist/presentation/flow/screen/orchestrated_capture_screen.d.ts +0 -1
  370. package/dist/presentation/flow/screen/orchestrated_capture_screen.js +1 -237
  371. package/dist/presentation/flow/screen/orchestrated_consent_screen.d.ts +0 -1
  372. package/dist/presentation/flow/screen/orchestrated_consent_screen.js +1 -49
  373. package/dist/presentation/flow/screen/orchestrated_instructions_screen.d.ts +0 -1
  374. package/dist/presentation/flow/screen/orchestrated_instructions_screen.js +1 -47
  375. package/dist/presentation/flow/screen/orchestrated_preview_screen.d.ts +0 -1
  376. package/dist/presentation/flow/screen/orchestrated_preview_screen.js +1 -34
  377. package/dist/presentation/flow/screen/orchestrated_processing_screen.d.ts +0 -1
  378. package/dist/presentation/flow/screen/orchestrated_processing_screen.js +1 -59
  379. package/dist/presentation/flow/screen/use_smile_id_orchestrated_screen_host.d.ts +0 -1
  380. package/dist/presentation/flow/screen/use_smile_id_orchestrated_screen_host.js +1 -22
  381. package/dist/presentation/flow/screen/validation_error_screen.d.ts +0 -1
  382. package/dist/presentation/flow/screen/validation_error_screen.js +1 -87
  383. package/dist/presentation/flow/use_smile_id_flow.d.ts +1 -2
  384. package/dist/presentation/flow/use_smile_id_flow.js +1 -270
  385. package/dist/presentation/flow/validation/flow_validator.d.ts +18 -15
  386. package/dist/presentation/flow/validation/flow_validator.js +1 -308
  387. package/dist/presentation/flow/validation/job_type_validator.d.ts +10 -1
  388. package/dist/presentation/flow/validation/job_type_validator.js +1 -434
  389. package/dist/presentation/flow/validation/user_details_validator.d.ts +8 -0
  390. package/dist/presentation/flow/validation/user_details_validator.js +1 -0
  391. package/dist/presentation/flow/validation/validation_state.d.ts +3 -4
  392. package/dist/presentation/flow/validation/validation_state.js +1 -23
  393. package/dist/presentation/screen/helpers/capture_screen_helpers.d.ts +0 -1
  394. package/dist/presentation/screen/helpers/capture_screen_helpers.js +1 -134
  395. package/dist/presentation/screen/helpers/capture_ui_state.d.ts +0 -1
  396. package/dist/presentation/screen/helpers/capture_ui_state.js +1 -179
  397. package/dist/presentation/screen/helpers/consent_screen_helpers.d.ts +0 -1
  398. package/dist/presentation/screen/helpers/consent_screen_helpers.js +1 -68
  399. package/dist/presentation/screen/helpers/ess_turn_haptics.d.ts +0 -1
  400. package/dist/presentation/screen/helpers/ess_turn_haptics.js +1 -53
  401. package/dist/presentation/screen/helpers/feedback_debouncer.d.ts +0 -1
  402. package/dist/presentation/screen/helpers/feedback_debouncer.js +1 -77
  403. package/dist/presentation/screen/helpers/instructions_screen_helpers.d.ts +0 -3
  404. package/dist/presentation/screen/helpers/instructions_screen_helpers.js +1 -54
  405. package/dist/presentation/screen/helpers/preview_screen_helpers.d.ts +0 -1
  406. package/dist/presentation/screen/helpers/preview_screen_helpers.js +1 -27
  407. package/dist/presentation/screen/helpers/processing_screen_helpers.d.ts +0 -1
  408. package/dist/presentation/screen/helpers/processing_screen_helpers.js +1 -12
  409. package/dist/presentation/screen/helpers/scan_state_to_overlay_state.d.ts +7 -1
  410. package/dist/presentation/screen/helpers/scan_state_to_overlay_state.js +1 -107
  411. package/dist/presentation/screen/helpers/use_capture_orientation_lock.d.ts +0 -1
  412. package/dist/presentation/screen/helpers/use_capture_orientation_lock.js +1 -79
  413. package/dist/presentation/screen/helpers/use_debounced_feedback_key.d.ts +0 -1
  414. package/dist/presentation/screen/helpers/use_debounced_feedback_key.js +1 -44
  415. package/dist/presentation/screen/use_smile_id_capture_screen.d.ts +8 -11
  416. package/dist/presentation/screen/use_smile_id_capture_screen.js +1 -594
  417. package/dist/presentation/screen/use_smile_id_consent_screen.d.ts +0 -1
  418. package/dist/presentation/screen/use_smile_id_consent_screen.js +1 -176
  419. package/dist/presentation/screen/use_smile_id_document_back_instructions.d.ts +6 -1
  420. package/dist/presentation/screen/use_smile_id_document_back_instructions.js +1 -43
  421. package/dist/presentation/screen/use_smile_id_document_preview_screen.d.ts +0 -1
  422. package/dist/presentation/screen/use_smile_id_document_preview_screen.js +1 -69
  423. package/dist/presentation/screen/use_smile_id_instructions_screen.d.ts +0 -1
  424. package/dist/presentation/screen/use_smile_id_instructions_screen.js +2 -66
  425. package/dist/presentation/screen/use_smile_id_permission_screen.d.ts +0 -1
  426. package/dist/presentation/screen/use_smile_id_permission_screen.js +1 -28
  427. package/dist/presentation/screen/use_smile_id_preview_screen.d.ts +0 -1
  428. package/dist/presentation/screen/use_smile_id_preview_screen.js +1 -71
  429. package/dist/presentation/screen/use_smile_id_processing_screen.d.ts +0 -1
  430. package/dist/presentation/screen/use_smile_id_processing_screen.js +1 -85
  431. package/dist/presentation/state/processing_state.d.ts +0 -1
  432. package/dist/presentation/state/processing_state.js +1 -2
  433. package/dist/presentation/state/use_smile_id_overlay_state.d.ts +1 -3
  434. package/dist/presentation/state/use_smile_id_overlay_state.js +1 -56
  435. package/dist/presentation/theme/theme.d.ts +0 -1
  436. package/dist/presentation/theme/theme.js +1 -226
  437. package/dist/presentation/theme/theme_context.d.ts +0 -1
  438. package/dist/presentation/theme/theme_context.js +1 -31
  439. package/dist/presentation/theme/use_smile_id_motion.d.ts +0 -1
  440. package/dist/presentation/theme/use_smile_id_motion.js +1 -13
  441. package/dist/presentation/theme/use_use_smile_id_fonts.d.ts +0 -1
  442. package/dist/presentation/theme/use_use_smile_id_fonts.js +1 -64
  443. package/dist/presentation/utils/force_max_brightness.d.ts +0 -1
  444. package/dist/presentation/utils/force_max_brightness.js +1 -105
  445. package/dist/presentation/utils/locale_utils.d.ts +0 -1
  446. package/dist/presentation/utils/locale_utils.js +1 -74
  447. package/dist/presentation/utils/use_reduced_motion.d.ts +0 -1
  448. package/dist/presentation/utils/use_reduced_motion.js +1 -24
  449. package/dist/testing/fake_face_analyzer.d.ts +6 -1
  450. package/dist/testing/fake_face_analyzer.js +1 -52
  451. package/dist/testing/index.d.ts +0 -1
  452. package/dist/testing/index.js +1 -7
  453. package/dist/testing/scenario_expectations.d.ts +0 -1
  454. package/dist/testing/scenario_expectations.js +1 -65
  455. package/dist/testing/scenario_loader.d.ts +0 -1
  456. package/dist/testing/scenario_loader.js +1 -64
  457. package/dist/testing/scripted_scan_results.d.ts +3 -2
  458. package/dist/testing/scripted_scan_results.js +1 -52
  459. package/package.json +28 -30
  460. package/dist/camera/camera_configuration.d.ts.map +0 -1
  461. package/dist/camera/camera_configuration.js.map +0 -1
  462. package/dist/camera/camera_defaults.d.ts.map +0 -1
  463. package/dist/camera/camera_defaults.js.map +0 -1
  464. package/dist/camera/camera_lens.d.ts.map +0 -1
  465. package/dist/camera/camera_lens.js.map +0 -1
  466. package/dist/camera/camera_permissions.d.ts.map +0 -1
  467. package/dist/camera/camera_permissions.js.map +0 -1
  468. package/dist/camera/camera_preview_image.d.ts +0 -18
  469. package/dist/camera/camera_preview_image.d.ts.map +0 -1
  470. package/dist/camera/camera_preview_image.js +0 -8
  471. package/dist/camera/camera_preview_image.js.map +0 -1
  472. package/dist/camera/document_image_pipeline.d.ts.map +0 -1
  473. package/dist/camera/document_image_pipeline.js.map +0 -1
  474. package/dist/camera/document_resize_target.d.ts.map +0 -1
  475. package/dist/camera/document_resize_target.js.map +0 -1
  476. package/dist/camera/focus_state.d.ts.map +0 -1
  477. package/dist/camera/focus_state.js.map +0 -1
  478. package/dist/camera/orientation_degrees.d.ts +0 -10
  479. package/dist/camera/orientation_degrees.d.ts.map +0 -1
  480. package/dist/camera/orientation_degrees.js +0 -20
  481. package/dist/camera/orientation_degrees.js.map +0 -1
  482. package/dist/camera/use_smile_id_camera_preview.d.ts +0 -64
  483. package/dist/camera/use_smile_id_camera_preview.d.ts.map +0 -1
  484. package/dist/camera/use_smile_id_camera_preview.js +0 -141
  485. package/dist/camera/use_smile_id_camera_preview.js.map +0 -1
  486. package/dist/camera/use_smile_id_camera_system.d.ts +0 -97
  487. package/dist/camera/use_smile_id_camera_system.d.ts.map +0 -1
  488. package/dist/camera/use_smile_id_camera_system.js +0 -185
  489. package/dist/camera/use_smile_id_camera_system.js.map +0 -1
  490. package/dist/camera/use_smile_id_frame_stream.d.ts.map +0 -1
  491. package/dist/camera/use_smile_id_frame_stream.js.map +0 -1
  492. package/dist/core/exception/agent_mode_with_enhanced_liveness_exception.d.ts.map +0 -1
  493. package/dist/core/exception/agent_mode_with_enhanced_liveness_exception.js.map +0 -1
  494. package/dist/core/exception/builder_validation_exception.d.ts.map +0 -1
  495. package/dist/core/exception/builder_validation_exception.js.map +0 -1
  496. package/dist/core/exception/capture_validation_exceptions.d.ts.map +0 -1
  497. package/dist/core/exception/capture_validation_exceptions.js.map +0 -1
  498. package/dist/core/exception/consent_validation_exceptions.d.ts.map +0 -1
  499. package/dist/core/exception/consent_validation_exceptions.js.map +0 -1
  500. package/dist/core/exception/duplicate_screen_type_exception.d.ts.map +0 -1
  501. package/dist/core/exception/duplicate_screen_type_exception.js.map +0 -1
  502. package/dist/core/exception/empty_screens_block_exception.d.ts.map +0 -1
  503. package/dist/core/exception/empty_screens_block_exception.js.map +0 -1
  504. package/dist/core/exception/flow_exceptions.d.ts.map +0 -1
  505. package/dist/core/exception/flow_exceptions.js.map +0 -1
  506. package/dist/core/exception/index.d.ts.map +0 -1
  507. package/dist/core/exception/index.js.map +0 -1
  508. package/dist/core/exception/invalid_consent_config_exception.d.ts.map +0 -1
  509. package/dist/core/exception/invalid_consent_config_exception.js.map +0 -1
  510. package/dist/core/exception/invalid_consent_information_exception.d.ts.map +0 -1
  511. package/dist/core/exception/invalid_consent_information_exception.js.map +0 -1
  512. package/dist/core/exception/invalid_document_capture_config_exception.d.ts.map +0 -1
  513. package/dist/core/exception/invalid_document_capture_config_exception.js.map +0 -1
  514. package/dist/core/exception/invalid_field_value_exception.d.ts.map +0 -1
  515. package/dist/core/exception/invalid_field_value_exception.js.map +0 -1
  516. package/dist/core/exception/invalid_job_type_screen_config_exception.d.ts.map +0 -1
  517. package/dist/core/exception/invalid_job_type_screen_config_exception.js.map +0 -1
  518. package/dist/core/exception/invalid_missing_capture_type_exception.d.ts.map +0 -1
  519. package/dist/core/exception/invalid_missing_capture_type_exception.js.map +0 -1
  520. package/dist/core/exception/invalid_screen_order_exception.d.ts.map +0 -1
  521. package/dist/core/exception/invalid_screen_order_exception.js.map +0 -1
  522. package/dist/core/exception/invalid_selfie_capture_config_exception.d.ts.map +0 -1
  523. package/dist/core/exception/invalid_selfie_capture_config_exception.js.map +0 -1
  524. package/dist/core/exception/issue_severity.d.ts.map +0 -1
  525. package/dist/core/exception/issue_severity.js.map +0 -1
  526. package/dist/core/exception/job_validation_exceptions.d.ts.map +0 -1
  527. package/dist/core/exception/job_validation_exceptions.js.map +0 -1
  528. package/dist/core/exception/liveness_frame_count_exception.d.ts.map +0 -1
  529. package/dist/core/exception/liveness_frame_count_exception.js.map +0 -1
  530. package/dist/core/exception/missing_capture_for_preview_exception.d.ts.map +0 -1
  531. package/dist/core/exception/missing_capture_for_preview_exception.js.map +0 -1
  532. package/dist/core/exception/missing_job_type_exception.d.ts.map +0 -1
  533. package/dist/core/exception/missing_job_type_exception.js.map +0 -1
  534. package/dist/core/exception/missing_ml_configuration_block_exception.d.ts.map +0 -1
  535. package/dist/core/exception/missing_ml_configuration_block_exception.js.map +0 -1
  536. package/dist/core/exception/missing_network_configuration_block_exception.d.ts.map +0 -1
  537. package/dist/core/exception/missing_network_configuration_block_exception.js.map +0 -1
  538. package/dist/core/exception/missing_partner_config_exception.d.ts.map +0 -1
  539. package/dist/core/exception/missing_partner_config_exception.js.map +0 -1
  540. package/dist/core/exception/missing_required_field_exception.d.ts.map +0 -1
  541. package/dist/core/exception/missing_required_field_exception.js.map +0 -1
  542. package/dist/core/exception/screen_config_validation_exceptions.d.ts.map +0 -1
  543. package/dist/core/exception/screen_config_validation_exceptions.js.map +0 -1
  544. package/dist/core/exception/use_smile_id_attestation_exception.d.ts.map +0 -1
  545. package/dist/core/exception/use_smile_id_attestation_exception.js.map +0 -1
  546. package/dist/core/exception/use_smile_id_builder_exception.d.ts.map +0 -1
  547. package/dist/core/exception/use_smile_id_builder_exception.js.map +0 -1
  548. package/dist/core/exception/use_smile_id_camera_exception.d.ts.map +0 -1
  549. package/dist/core/exception/use_smile_id_camera_exception.js.map +0 -1
  550. package/dist/core/exception/use_smile_id_error_code.d.ts.map +0 -1
  551. package/dist/core/exception/use_smile_id_error_code.js.map +0 -1
  552. package/dist/core/exception/use_smile_id_exception.d.ts.map +0 -1
  553. package/dist/core/exception/use_smile_id_exception.js.map +0 -1
  554. package/dist/core/exception/use_smile_id_general_exception.d.ts.map +0 -1
  555. package/dist/core/exception/use_smile_id_general_exception.js.map +0 -1
  556. package/dist/core/exception/use_smile_id_network_exception.d.ts.map +0 -1
  557. package/dist/core/exception/use_smile_id_network_exception.js.map +0 -1
  558. package/dist/core/exception/use_smile_id_validation_exception.d.ts.map +0 -1
  559. package/dist/core/exception/use_smile_id_validation_exception.js.map +0 -1
  560. package/dist/core/models/config.d.ts.map +0 -1
  561. package/dist/core/models/config.js.map +0 -1
  562. package/dist/core/models/document_capture_mode.d.ts.map +0 -1
  563. package/dist/core/models/document_capture_mode.js.map +0 -1
  564. package/dist/core/models/document_type.d.ts.map +0 -1
  565. package/dist/core/models/document_type.js.map +0 -1
  566. package/dist/core/models/flow_step.d.ts.map +0 -1
  567. package/dist/core/models/flow_step.js.map +0 -1
  568. package/dist/core/models/global_privacy_control.d.ts.map +0 -1
  569. package/dist/core/models/global_privacy_control.js.map +0 -1
  570. package/dist/core/models/head_turn_direction.d.ts.map +0 -1
  571. package/dist/core/models/head_turn_direction.js.map +0 -1
  572. package/dist/core/models/job_type.d.ts.map +0 -1
  573. package/dist/core/models/job_type.js.map +0 -1
  574. package/dist/core/models/ml_config.d.ts.map +0 -1
  575. package/dist/core/models/ml_config.js.map +0 -1
  576. package/dist/core/models/network_config.d.ts.map +0 -1
  577. package/dist/core/models/network_config.js.map +0 -1
  578. package/dist/core/models/params.d.ts.map +0 -1
  579. package/dist/core/models/params.js.map +0 -1
  580. package/dist/core/models/result.d.ts.map +0 -1
  581. package/dist/core/models/result.js.map +0 -1
  582. package/dist/data/api/auth/token_holder.d.ts.map +0 -1
  583. package/dist/data/api/auth/token_holder.js.map +0 -1
  584. package/dist/data/api/interceptors/gzip_interceptor.d.ts.map +0 -1
  585. package/dist/data/api/interceptors/gzip_interceptor.js.map +0 -1
  586. package/dist/data/api/interceptors/logging_interceptor.d.ts.map +0 -1
  587. package/dist/data/api/interceptors/logging_interceptor.js.map +0 -1
  588. package/dist/data/api/interceptors/sensitive_headers.d.ts.map +0 -1
  589. package/dist/data/api/interceptors/sensitive_headers.js.map +0 -1
  590. package/dist/data/api/interceptors/smile_auth_interceptor.d.ts.map +0 -1
  591. package/dist/data/api/interceptors/smile_auth_interceptor.js.map +0 -1
  592. package/dist/data/api/interceptors/smile_integrity_interceptor.d.ts.map +0 -1
  593. package/dist/data/api/interceptors/smile_integrity_interceptor.js.map +0 -1
  594. package/dist/data/api/interceptors/smile_request_mac_interceptor.d.ts.map +0 -1
  595. package/dist/data/api/interceptors/smile_request_mac_interceptor.js.map +0 -1
  596. package/dist/data/api/interceptors/token_refresh_interceptor.d.ts.map +0 -1
  597. package/dist/data/api/interceptors/token_refresh_interceptor.js.map +0 -1
  598. package/dist/data/api/smile_id_api.d.ts.map +0 -1
  599. package/dist/data/api/smile_id_api.js.map +0 -1
  600. package/dist/data/compression/compressible_asset.d.ts.map +0 -1
  601. package/dist/data/compression/compressible_asset.js.map +0 -1
  602. package/dist/data/compression/payload_compression_config.d.ts.map +0 -1
  603. package/dist/data/compression/payload_compression_config.js.map +0 -1
  604. package/dist/data/compression/payload_compression_runner.d.ts.map +0 -1
  605. package/dist/data/compression/payload_compression_runner.js.map +0 -1
  606. package/dist/data/compression/payload_compressor.d.ts.map +0 -1
  607. package/dist/data/compression/payload_compressor.js.map +0 -1
  608. package/dist/data/compression/uri_compressible_asset.d.ts.map +0 -1
  609. package/dist/data/compression/uri_compressible_asset.js.map +0 -1
  610. package/dist/data/dsl/builder/cache_config_builder.d.ts.map +0 -1
  611. package/dist/data/dsl/builder/cache_config_builder.js.map +0 -1
  612. package/dist/data/dsl/builder/config_builder.d.ts.map +0 -1
  613. package/dist/data/dsl/builder/config_builder.js.map +0 -1
  614. package/dist/data/dsl/builder/interceptor_config_builder.d.ts.map +0 -1
  615. package/dist/data/dsl/builder/interceptor_config_builder.js.map +0 -1
  616. package/dist/data/dsl/builder/retry_config_builder.d.ts.map +0 -1
  617. package/dist/data/dsl/builder/retry_config_builder.js.map +0 -1
  618. package/dist/data/dsl/builder/timeout_config_builder.d.ts.map +0 -1
  619. package/dist/data/dsl/builder/timeout_config_builder.js.map +0 -1
  620. package/dist/data/dsl/use_smile_id_network_builder.d.ts.map +0 -1
  621. package/dist/data/dsl/use_smile_id_network_builder.js.map +0 -1
  622. package/dist/data/factory/networking_factory.d.ts.map +0 -1
  623. package/dist/data/factory/networking_factory.js.map +0 -1
  624. package/dist/data/model/image_dimensions.d.ts.map +0 -1
  625. package/dist/data/model/image_dimensions.js.map +0 -1
  626. package/dist/data/model/job_request.d.ts.map +0 -1
  627. package/dist/data/model/job_request.js.map +0 -1
  628. package/dist/data/model/job_submission_response.d.ts.map +0 -1
  629. package/dist/data/model/job_submission_response.js.map +0 -1
  630. package/dist/data/model/sdk_config.d.ts.map +0 -1
  631. package/dist/data/model/sdk_config.js.map +0 -1
  632. package/dist/data/model/sdk_config_capture.d.ts.map +0 -1
  633. package/dist/data/model/sdk_config_capture.js.map +0 -1
  634. package/dist/data/model/sdk_config_source.d.ts.map +0 -1
  635. package/dist/data/model/sdk_config_source.js.map +0 -1
  636. package/dist/data/repository/use_smile_id_repository.d.ts.map +0 -1
  637. package/dist/data/repository/use_smile_id_repository.js.map +0 -1
  638. package/dist/data/repository/use_smile_id_repository_impl.d.ts.map +0 -1
  639. package/dist/data/repository/use_smile_id_repository_impl.js.map +0 -1
  640. package/dist/data/security/request_canonicalizer.d.ts.map +0 -1
  641. package/dist/data/security/request_canonicalizer.js.map +0 -1
  642. package/dist/data/security/request_timestamp.d.ts.map +0 -1
  643. package/dist/data/security/request_timestamp.js.map +0 -1
  644. package/dist/data/security/security_policy.d.ts.map +0 -1
  645. package/dist/data/security/security_policy.js.map +0 -1
  646. package/dist/data/security/signing_crypto.d.ts.map +0 -1
  647. package/dist/data/security/signing_crypto.js.map +0 -1
  648. package/dist/data/security/smile_id_crypto_error.d.ts.map +0 -1
  649. package/dist/data/security/smile_id_crypto_error.js.map +0 -1
  650. package/dist/data/security/smile_id_crypto_manager.d.ts.map +0 -1
  651. package/dist/data/security/smile_id_crypto_manager.js.map +0 -1
  652. package/dist/data/smile_id_urls.d.ts.map +0 -1
  653. package/dist/data/smile_id_urls.js.map +0 -1
  654. package/dist/data/util/retry_util.d.ts.map +0 -1
  655. package/dist/data/util/retry_util.js.map +0 -1
  656. package/dist/data/util/use_smile_id_token_decoder.d.ts.map +0 -1
  657. package/dist/data/util/use_smile_id_token_decoder.js.map +0 -1
  658. package/dist/index.d.ts.map +0 -1
  659. package/dist/index.js.map +0 -1
  660. package/dist/l10n/strings_en.d.ts.map +0 -1
  661. package/dist/l10n/strings_en.js.map +0 -1
  662. package/dist/l10n/use_smile_id_localizations.d.ts.map +0 -1
  663. package/dist/l10n/use_smile_id_localizations.js.map +0 -1
  664. package/dist/l10n/use_smile_id_localizations_provider.d.ts.map +0 -1
  665. package/dist/l10n/use_smile_id_localizations_provider.js.map +0 -1
  666. package/dist/metadata/builder_configuration.d.ts.map +0 -1
  667. package/dist/metadata/builder_configuration.js.map +0 -1
  668. package/dist/metadata/captured_image_properties.d.ts.map +0 -1
  669. package/dist/metadata/captured_image_properties.js.map +0 -1
  670. package/dist/metadata/device_orientation_collector.d.ts.map +0 -1
  671. package/dist/metadata/device_orientation_collector.js.map +0 -1
  672. package/dist/metadata/document_image_origin.d.ts.map +0 -1
  673. package/dist/metadata/document_image_origin.js.map +0 -1
  674. package/dist/metadata/geolocation.d.ts.map +0 -1
  675. package/dist/metadata/geolocation.js.map +0 -1
  676. package/dist/metadata/metadata_configuration_mappers.d.ts.map +0 -1
  677. package/dist/metadata/metadata_configuration_mappers.js.map +0 -1
  678. package/dist/metadata/model_configuration.d.ts.map +0 -1
  679. package/dist/metadata/model_configuration.js.map +0 -1
  680. package/dist/metadata/optional_native_modules.d.ts.map +0 -1
  681. package/dist/metadata/optional_native_modules.js.map +0 -1
  682. package/dist/metadata/use_smile_id_metadata.d.ts.map +0 -1
  683. package/dist/metadata/use_smile_id_metadata.js.map +0 -1
  684. package/dist/metadata/use_smile_id_metadata_factory.d.ts.map +0 -1
  685. package/dist/metadata/use_smile_id_metadata_factory.js.map +0 -1
  686. package/dist/presentation/assets/svg/document_shimmer_strings.d.ts.map +0 -1
  687. package/dist/presentation/assets/svg/document_shimmer_strings.js.map +0 -1
  688. package/dist/presentation/assets/svg/instruction_svg_strings.d.ts.map +0 -1
  689. package/dist/presentation/assets/svg/instruction_svg_strings.js.map +0 -1
  690. package/dist/presentation/assets/svg/svg_strings.d.ts.map +0 -1
  691. package/dist/presentation/assets/svg/svg_strings.js.map +0 -1
  692. package/dist/presentation/components/face_oval_defaults.d.ts.map +0 -1
  693. package/dist/presentation/components/face_oval_defaults.js.map +0 -1
  694. package/dist/presentation/components/helpers/animated_lottie_view.d.ts.map +0 -1
  695. package/dist/presentation/components/helpers/animated_lottie_view.js.map +0 -1
  696. package/dist/presentation/components/helpers/capture_instruction_animation_spec.d.ts.map +0 -1
  697. package/dist/presentation/components/helpers/capture_instruction_animation_spec.js.map +0 -1
  698. package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.d.ts.map +0 -1
  699. package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.js.map +0 -1
  700. package/dist/presentation/components/helpers/scaled_oval_geometry.d.ts.map +0 -1
  701. package/dist/presentation/components/helpers/scaled_oval_geometry.js.map +0 -1
  702. package/dist/presentation/components/icons/index.d.ts.map +0 -1
  703. package/dist/presentation/components/icons/index.js.map +0 -1
  704. package/dist/presentation/components/status_indicator_state.d.ts.map +0 -1
  705. package/dist/presentation/components/status_indicator_state.js.map +0 -1
  706. package/dist/presentation/components/use_smile_id_attribution.d.ts.map +0 -1
  707. package/dist/presentation/components/use_smile_id_attribution.js.map +0 -1
  708. package/dist/presentation/components/use_smile_id_back_button.d.ts.map +0 -1
  709. package/dist/presentation/components/use_smile_id_back_button.js.map +0 -1
  710. package/dist/presentation/components/use_smile_id_button.d.ts.map +0 -1
  711. package/dist/presentation/components/use_smile_id_button.js.map +0 -1
  712. package/dist/presentation/components/use_smile_id_capture_content.d.ts.map +0 -1
  713. package/dist/presentation/components/use_smile_id_capture_content.js.map +0 -1
  714. package/dist/presentation/components/use_smile_id_capture_instruction_animation.d.ts.map +0 -1
  715. package/dist/presentation/components/use_smile_id_capture_instruction_animation.js.map +0 -1
  716. package/dist/presentation/components/use_smile_id_capture_spinner.d.ts.map +0 -1
  717. package/dist/presentation/components/use_smile_id_capture_spinner.js.map +0 -1
  718. package/dist/presentation/components/use_smile_id_captured_document_image.d.ts.map +0 -1
  719. package/dist/presentation/components/use_smile_id_captured_document_image.js.map +0 -1
  720. package/dist/presentation/components/use_smile_id_captured_image_oval.d.ts.map +0 -1
  721. package/dist/presentation/components/use_smile_id_captured_image_oval.js.map +0 -1
  722. package/dist/presentation/components/use_smile_id_card_surface.d.ts.map +0 -1
  723. package/dist/presentation/components/use_smile_id_card_surface.js.map +0 -1
  724. package/dist/presentation/components/use_smile_id_confirmation_buttons.d.ts.map +0 -1
  725. package/dist/presentation/components/use_smile_id_confirmation_buttons.js.map +0 -1
  726. package/dist/presentation/components/use_smile_id_consent_row.d.ts.map +0 -1
  727. package/dist/presentation/components/use_smile_id_consent_row.js.map +0 -1
  728. package/dist/presentation/components/use_smile_id_content_card.d.ts.map +0 -1
  729. package/dist/presentation/components/use_smile_id_content_card.js.map +0 -1
  730. package/dist/presentation/components/use_smile_id_document_capture_controls.d.ts.map +0 -1
  731. package/dist/presentation/components/use_smile_id_document_capture_controls.js.map +0 -1
  732. package/dist/presentation/components/use_smile_id_document_overlay.d.ts.map +0 -1
  733. package/dist/presentation/components/use_smile_id_document_overlay.js.map +0 -1
  734. package/dist/presentation/components/use_smile_id_document_shimmer.d.ts.map +0 -1
  735. package/dist/presentation/components/use_smile_id_document_shimmer.js.map +0 -1
  736. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.d.ts.map +0 -1
  737. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.js.map +0 -1
  738. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_direction_animation.d.ts.map +0 -1
  739. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_direction_animation.js.map +0 -1
  740. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_full_animation.d.ts.map +0 -1
  741. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_full_animation.js.map +0 -1
  742. package/dist/presentation/components/use_smile_id_expandable_icon.d.ts.map +0 -1
  743. package/dist/presentation/components/use_smile_id_expandable_icon.js.map +0 -1
  744. package/dist/presentation/components/use_smile_id_face_oval_image.d.ts.map +0 -1
  745. package/dist/presentation/components/use_smile_id_face_oval_image.js.map +0 -1
  746. package/dist/presentation/components/use_smile_id_face_overlay.d.ts.map +0 -1
  747. package/dist/presentation/components/use_smile_id_face_overlay.js.map +0 -1
  748. package/dist/presentation/components/use_smile_id_failed_content.d.ts.map +0 -1
  749. package/dist/presentation/components/use_smile_id_failed_content.js.map +0 -1
  750. package/dist/presentation/components/use_smile_id_guideline_thumbnail.d.ts.map +0 -1
  751. package/dist/presentation/components/use_smile_id_guideline_thumbnail.js.map +0 -1
  752. package/dist/presentation/components/use_smile_id_instructions_hero.d.ts.map +0 -1
  753. package/dist/presentation/components/use_smile_id_instructions_hero.js.map +0 -1
  754. package/dist/presentation/components/use_smile_id_learn_more_content.d.ts.map +0 -1
  755. package/dist/presentation/components/use_smile_id_learn_more_content.js.map +0 -1
  756. package/dist/presentation/components/use_smile_id_loading_content.d.ts.map +0 -1
  757. package/dist/presentation/components/use_smile_id_loading_content.js.map +0 -1
  758. package/dist/presentation/components/use_smile_id_loading_indicator.d.ts.map +0 -1
  759. package/dist/presentation/components/use_smile_id_loading_indicator.js.map +0 -1
  760. package/dist/presentation/components/use_smile_id_oval_border_palette.d.ts.map +0 -1
  761. package/dist/presentation/components/use_smile_id_oval_border_palette.js.map +0 -1
  762. package/dist/presentation/components/use_smile_id_partner_icon.d.ts.map +0 -1
  763. package/dist/presentation/components/use_smile_id_partner_icon.js.map +0 -1
  764. package/dist/presentation/components/use_smile_id_processing_center_indicator.d.ts.map +0 -1
  765. package/dist/presentation/components/use_smile_id_processing_center_indicator.js.map +0 -1
  766. package/dist/presentation/components/use_smile_id_rounded_checkbox.d.ts.map +0 -1
  767. package/dist/presentation/components/use_smile_id_rounded_checkbox.js.map +0 -1
  768. package/dist/presentation/components/use_smile_id_status_indicator.d.ts.map +0 -1
  769. package/dist/presentation/components/use_smile_id_status_indicator.js.map +0 -1
  770. package/dist/presentation/components/use_smile_id_success_content.d.ts.map +0 -1
  771. package/dist/presentation/components/use_smile_id_success_content.js.map +0 -1
  772. package/dist/presentation/flow/analytics/use_smile_id_analytics_event.d.ts.map +0 -1
  773. package/dist/presentation/flow/analytics/use_smile_id_analytics_event.js.map +0 -1
  774. package/dist/presentation/flow/config/flow_configuration.d.ts.map +0 -1
  775. package/dist/presentation/flow/config/flow_configuration.js.map +0 -1
  776. package/dist/presentation/flow/dsl/builder/config_builder.d.ts.map +0 -1
  777. package/dist/presentation/flow/dsl/builder/config_builder.js.map +0 -1
  778. package/dist/presentation/flow/dsl/builder/ml_builder.d.ts.map +0 -1
  779. package/dist/presentation/flow/dsl/builder/ml_builder.js.map +0 -1
  780. package/dist/presentation/flow/dsl/builder/screens_builder.d.ts.map +0 -1
  781. package/dist/presentation/flow/dsl/builder/screens_builder.js.map +0 -1
  782. package/dist/presentation/flow/dsl/builder/theme_builder.d.ts.map +0 -1
  783. package/dist/presentation/flow/dsl/builder/theme_builder.js.map +0 -1
  784. package/dist/presentation/flow/dsl/flow_build_result.d.ts.map +0 -1
  785. package/dist/presentation/flow/dsl/flow_build_result.js.map +0 -1
  786. package/dist/presentation/flow/dsl/use_smile_id_builder.d.ts.map +0 -1
  787. package/dist/presentation/flow/dsl/use_smile_id_builder.js.map +0 -1
  788. package/dist/presentation/flow/dsl/use_smile_id_flow_builder.d.ts.map +0 -1
  789. package/dist/presentation/flow/dsl/use_smile_id_flow_builder.js.map +0 -1
  790. package/dist/presentation/flow/flow_navigation_context.d.ts.map +0 -1
  791. package/dist/presentation/flow/flow_navigation_context.js.map +0 -1
  792. package/dist/presentation/flow/flow_navigation_manager.d.ts.map +0 -1
  793. package/dist/presentation/flow/flow_navigation_manager.js.map +0 -1
  794. package/dist/presentation/flow/graph/screen_renderer.d.ts.map +0 -1
  795. package/dist/presentation/flow/graph/screen_renderer.js.map +0 -1
  796. package/dist/presentation/flow/job_submission_state.d.ts.map +0 -1
  797. package/dist/presentation/flow/job_submission_state.js.map +0 -1
  798. package/dist/presentation/flow/model/instruction_guideline.d.ts.map +0 -1
  799. package/dist/presentation/flow/model/instruction_guideline.js.map +0 -1
  800. package/dist/presentation/flow/model/instructions_defaults.d.ts.map +0 -1
  801. package/dist/presentation/flow/model/instructions_defaults.js.map +0 -1
  802. package/dist/presentation/flow/screen/helpers/face_session_config.d.ts.map +0 -1
  803. package/dist/presentation/flow/screen/helpers/face_session_config.js.map +0 -1
  804. package/dist/presentation/flow/screen/orchestrated_capture_screen.d.ts.map +0 -1
  805. package/dist/presentation/flow/screen/orchestrated_capture_screen.js.map +0 -1
  806. package/dist/presentation/flow/screen/orchestrated_consent_screen.d.ts.map +0 -1
  807. package/dist/presentation/flow/screen/orchestrated_consent_screen.js.map +0 -1
  808. package/dist/presentation/flow/screen/orchestrated_instructions_screen.d.ts.map +0 -1
  809. package/dist/presentation/flow/screen/orchestrated_instructions_screen.js.map +0 -1
  810. package/dist/presentation/flow/screen/orchestrated_preview_screen.d.ts.map +0 -1
  811. package/dist/presentation/flow/screen/orchestrated_preview_screen.js.map +0 -1
  812. package/dist/presentation/flow/screen/orchestrated_processing_screen.d.ts.map +0 -1
  813. package/dist/presentation/flow/screen/orchestrated_processing_screen.js.map +0 -1
  814. package/dist/presentation/flow/screen/use_smile_id_orchestrated_screen_host.d.ts.map +0 -1
  815. package/dist/presentation/flow/screen/use_smile_id_orchestrated_screen_host.js.map +0 -1
  816. package/dist/presentation/flow/screen/validation_error_screen.d.ts.map +0 -1
  817. package/dist/presentation/flow/screen/validation_error_screen.js.map +0 -1
  818. package/dist/presentation/flow/use_smile_id_flow.d.ts.map +0 -1
  819. package/dist/presentation/flow/use_smile_id_flow.js.map +0 -1
  820. package/dist/presentation/flow/validation/flow_validator.d.ts.map +0 -1
  821. package/dist/presentation/flow/validation/flow_validator.js.map +0 -1
  822. package/dist/presentation/flow/validation/job_type_validator.d.ts.map +0 -1
  823. package/dist/presentation/flow/validation/job_type_validator.js.map +0 -1
  824. package/dist/presentation/flow/validation/validation_state.d.ts.map +0 -1
  825. package/dist/presentation/flow/validation/validation_state.js.map +0 -1
  826. package/dist/presentation/screen/helpers/capture_screen_helpers.d.ts.map +0 -1
  827. package/dist/presentation/screen/helpers/capture_screen_helpers.js.map +0 -1
  828. package/dist/presentation/screen/helpers/capture_ui_state.d.ts.map +0 -1
  829. package/dist/presentation/screen/helpers/capture_ui_state.js.map +0 -1
  830. package/dist/presentation/screen/helpers/consent_screen_helpers.d.ts.map +0 -1
  831. package/dist/presentation/screen/helpers/consent_screen_helpers.js.map +0 -1
  832. package/dist/presentation/screen/helpers/ess_turn_haptics.d.ts.map +0 -1
  833. package/dist/presentation/screen/helpers/ess_turn_haptics.js.map +0 -1
  834. package/dist/presentation/screen/helpers/feedback_debouncer.d.ts.map +0 -1
  835. package/dist/presentation/screen/helpers/feedback_debouncer.js.map +0 -1
  836. package/dist/presentation/screen/helpers/instructions_screen_helpers.d.ts.map +0 -1
  837. package/dist/presentation/screen/helpers/instructions_screen_helpers.js.map +0 -1
  838. package/dist/presentation/screen/helpers/preview_screen_helpers.d.ts.map +0 -1
  839. package/dist/presentation/screen/helpers/preview_screen_helpers.js.map +0 -1
  840. package/dist/presentation/screen/helpers/processing_screen_helpers.d.ts.map +0 -1
  841. package/dist/presentation/screen/helpers/processing_screen_helpers.js.map +0 -1
  842. package/dist/presentation/screen/helpers/scan_state_to_overlay_state.d.ts.map +0 -1
  843. package/dist/presentation/screen/helpers/scan_state_to_overlay_state.js.map +0 -1
  844. package/dist/presentation/screen/helpers/use_capture_orientation_lock.d.ts.map +0 -1
  845. package/dist/presentation/screen/helpers/use_capture_orientation_lock.js.map +0 -1
  846. package/dist/presentation/screen/helpers/use_debounced_feedback_key.d.ts.map +0 -1
  847. package/dist/presentation/screen/helpers/use_debounced_feedback_key.js.map +0 -1
  848. package/dist/presentation/screen/use_smile_id_capture_screen.d.ts.map +0 -1
  849. package/dist/presentation/screen/use_smile_id_capture_screen.js.map +0 -1
  850. package/dist/presentation/screen/use_smile_id_consent_screen.d.ts.map +0 -1
  851. package/dist/presentation/screen/use_smile_id_consent_screen.js.map +0 -1
  852. package/dist/presentation/screen/use_smile_id_document_back_instructions.d.ts.map +0 -1
  853. package/dist/presentation/screen/use_smile_id_document_back_instructions.js.map +0 -1
  854. package/dist/presentation/screen/use_smile_id_document_preview_screen.d.ts.map +0 -1
  855. package/dist/presentation/screen/use_smile_id_document_preview_screen.js.map +0 -1
  856. package/dist/presentation/screen/use_smile_id_instructions_screen.d.ts.map +0 -1
  857. package/dist/presentation/screen/use_smile_id_instructions_screen.js.map +0 -1
  858. package/dist/presentation/screen/use_smile_id_permission_screen.d.ts.map +0 -1
  859. package/dist/presentation/screen/use_smile_id_permission_screen.js.map +0 -1
  860. package/dist/presentation/screen/use_smile_id_preview_screen.d.ts.map +0 -1
  861. package/dist/presentation/screen/use_smile_id_preview_screen.js.map +0 -1
  862. package/dist/presentation/screen/use_smile_id_processing_screen.d.ts.map +0 -1
  863. package/dist/presentation/screen/use_smile_id_processing_screen.js.map +0 -1
  864. package/dist/presentation/state/processing_state.d.ts.map +0 -1
  865. package/dist/presentation/state/processing_state.js.map +0 -1
  866. package/dist/presentation/state/use_smile_id_overlay_state.d.ts.map +0 -1
  867. package/dist/presentation/state/use_smile_id_overlay_state.js.map +0 -1
  868. package/dist/presentation/theme/theme.d.ts.map +0 -1
  869. package/dist/presentation/theme/theme.js.map +0 -1
  870. package/dist/presentation/theme/theme_context.d.ts.map +0 -1
  871. package/dist/presentation/theme/theme_context.js.map +0 -1
  872. package/dist/presentation/theme/use_smile_id_motion.d.ts.map +0 -1
  873. package/dist/presentation/theme/use_smile_id_motion.js.map +0 -1
  874. package/dist/presentation/theme/use_use_smile_id_fonts.d.ts.map +0 -1
  875. package/dist/presentation/theme/use_use_smile_id_fonts.js.map +0 -1
  876. package/dist/presentation/utils/force_max_brightness.d.ts.map +0 -1
  877. package/dist/presentation/utils/force_max_brightness.js.map +0 -1
  878. package/dist/presentation/utils/locale_utils.d.ts.map +0 -1
  879. package/dist/presentation/utils/locale_utils.js.map +0 -1
  880. package/dist/presentation/utils/use_reduced_motion.d.ts.map +0 -1
  881. package/dist/presentation/utils/use_reduced_motion.js.map +0 -1
  882. package/dist/testing/fake_face_analyzer.d.ts.map +0 -1
  883. package/dist/testing/fake_face_analyzer.js.map +0 -1
  884. package/dist/testing/index.d.ts.map +0 -1
  885. package/dist/testing/index.js.map +0 -1
  886. package/dist/testing/scenario_expectations.d.ts.map +0 -1
  887. package/dist/testing/scenario_expectations.js.map +0 -1
  888. package/dist/testing/scenario_loader.d.ts.map +0 -1
  889. package/dist/testing/scenario_loader.js.map +0 -1
  890. package/dist/testing/scripted_scan_results.d.ts.map +0 -1
  891. package/dist/testing/scripted_scan_results.js.map +0 -1
  892. package/src/__tests__/dsl.test.ts +0 -1165
  893. package/src/__tests__/enum_parity.test.ts +0 -84
  894. package/src/__tests__/react_native_mock.tsx +0 -218
  895. package/src/__tests__/setup_react_native.ts +0 -368
  896. package/src/__tests__/snapshots/__snapshots__/screens_structural.test.tsx.snap +0 -5261
  897. package/src/__tests__/snapshots/screens_structural.test.tsx +0 -230
  898. package/src/__tests__/theme.test.ts +0 -156
  899. package/src/camera/__tests__/camera_defaults.test.ts +0 -28
  900. package/src/camera/__tests__/camera_lens.test.ts +0 -18
  901. package/src/camera/__tests__/document_resize_target.test.ts +0 -44
  902. package/src/camera/__tests__/focus_state.test.ts +0 -48
  903. package/src/camera/__tests__/orientation_degrees.test.ts +0 -21
  904. package/src/camera/__tests__/use_smile_id_camera_system.test.ts +0 -103
  905. package/src/camera/__tests__/use_smile_id_frame_stream.test.ts +0 -227
  906. package/src/camera/camera_configuration.ts +0 -32
  907. package/src/camera/camera_defaults.ts +0 -25
  908. package/src/camera/camera_lens.ts +0 -13
  909. package/src/camera/camera_permissions.ts +0 -36
  910. package/src/camera/camera_preview_image.ts +0 -19
  911. package/src/camera/document_image_pipeline.ts +0 -101
  912. package/src/camera/document_resize_target.ts +0 -22
  913. package/src/camera/focus_state.ts +0 -26
  914. package/src/camera/orientation_degrees.ts +0 -21
  915. package/src/camera/use_smile_id_camera_preview.tsx +0 -256
  916. package/src/camera/use_smile_id_camera_system.ts +0 -236
  917. package/src/camera/use_smile_id_frame_stream.ts +0 -189
  918. package/src/core/exception/__tests__/builder_validation_exceptions.test.ts +0 -67
  919. package/src/core/exception/__tests__/network_exception_mapper.test.ts +0 -179
  920. package/src/core/exception/agent_mode_with_enhanced_liveness_exception.ts +0 -20
  921. package/src/core/exception/builder_validation_exception.ts +0 -40
  922. package/src/core/exception/capture_validation_exceptions.ts +0 -9
  923. package/src/core/exception/consent_validation_exceptions.ts +0 -7
  924. package/src/core/exception/duplicate_screen_type_exception.ts +0 -22
  925. package/src/core/exception/empty_screens_block_exception.ts +0 -19
  926. package/src/core/exception/flow_exceptions.test.ts +0 -39
  927. package/src/core/exception/flow_exceptions.ts +0 -42
  928. package/src/core/exception/index.ts +0 -74
  929. package/src/core/exception/invalid_consent_config_exception.ts +0 -20
  930. package/src/core/exception/invalid_consent_information_exception.ts +0 -21
  931. package/src/core/exception/invalid_document_capture_config_exception.ts +0 -22
  932. package/src/core/exception/invalid_field_value_exception.ts +0 -21
  933. package/src/core/exception/invalid_job_type_screen_config_exception.ts +0 -70
  934. package/src/core/exception/invalid_missing_capture_type_exception.ts +0 -19
  935. package/src/core/exception/invalid_screen_order_exception.ts +0 -28
  936. package/src/core/exception/invalid_selfie_capture_config_exception.ts +0 -22
  937. package/src/core/exception/issue_severity.ts +0 -14
  938. package/src/core/exception/job_validation_exceptions.ts +0 -11
  939. package/src/core/exception/liveness_frame_count_exception.ts +0 -21
  940. package/src/core/exception/missing_capture_for_preview_exception.ts +0 -24
  941. package/src/core/exception/missing_job_type_exception.ts +0 -20
  942. package/src/core/exception/missing_ml_configuration_block_exception.ts +0 -21
  943. package/src/core/exception/missing_network_configuration_block_exception.ts +0 -22
  944. package/src/core/exception/missing_partner_config_exception.ts +0 -38
  945. package/src/core/exception/missing_required_field_exception.ts +0 -19
  946. package/src/core/exception/screen_config_validation_exceptions.ts +0 -10
  947. package/src/core/exception/use_smile_id_attestation_exception.ts +0 -11
  948. package/src/core/exception/use_smile_id_builder_exception.ts +0 -18
  949. package/src/core/exception/use_smile_id_camera_exception.ts +0 -12
  950. package/src/core/exception/use_smile_id_error_code.ts +0 -84
  951. package/src/core/exception/use_smile_id_exception.ts +0 -52
  952. package/src/core/exception/use_smile_id_general_exception.ts +0 -12
  953. package/src/core/exception/use_smile_id_network_exception.ts +0 -279
  954. package/src/core/exception/use_smile_id_validation_exception.ts +0 -12
  955. package/src/core/models/__tests__/document_capture_mode.test.ts +0 -43
  956. package/src/core/models/__tests__/document_type.test.ts +0 -66
  957. package/src/core/models/__tests__/flow_models.test.ts +0 -26
  958. package/src/core/models/__tests__/job_type.test.ts +0 -48
  959. package/src/core/models/config.ts +0 -58
  960. package/src/core/models/document_capture_mode.ts +0 -73
  961. package/src/core/models/document_type.ts +0 -79
  962. package/src/core/models/flow_step.ts +0 -17
  963. package/src/core/models/global_privacy_control.ts +0 -45
  964. package/src/core/models/head_turn_direction.ts +0 -15
  965. package/src/core/models/job_type.ts +0 -53
  966. package/src/core/models/ml_config.ts +0 -47
  967. package/src/core/models/network_config.ts +0 -138
  968. package/src/core/models/params.ts +0 -98
  969. package/src/core/models/result.test.ts +0 -20
  970. package/src/core/models/result.ts +0 -33
  971. package/src/data/api/__tests__/smile_id_api.test.ts +0 -1197
  972. package/src/data/api/auth/token_holder.ts +0 -72
  973. package/src/data/api/interceptors/__tests__/gzip_interceptor.test.ts +0 -83
  974. package/src/data/api/interceptors/__tests__/logging_interceptor.test.ts +0 -252
  975. package/src/data/api/interceptors/__tests__/sensitive_headers.test.ts +0 -29
  976. package/src/data/api/interceptors/__tests__/smile_integrity_interceptor.test.ts +0 -192
  977. package/src/data/api/interceptors/__tests__/smile_request_mac_interceptor.test.ts +0 -156
  978. package/src/data/api/interceptors/__tests__/token_refresh_interceptor.test.ts +0 -173
  979. package/src/data/api/interceptors/gzip_interceptor.ts +0 -31
  980. package/src/data/api/interceptors/logging_interceptor.ts +0 -155
  981. package/src/data/api/interceptors/sensitive_headers.ts +0 -46
  982. package/src/data/api/interceptors/smile_auth_interceptor.ts +0 -73
  983. package/src/data/api/interceptors/smile_integrity_interceptor.ts +0 -99
  984. package/src/data/api/interceptors/smile_request_mac_interceptor.ts +0 -106
  985. package/src/data/api/interceptors/token_refresh_interceptor.ts +0 -122
  986. package/src/data/api/smile_id_api.ts +0 -488
  987. package/src/data/compression/__tests__/payload_compressor.test.ts +0 -200
  988. package/src/data/compression/__tests__/payload_compressor_real_jpeg.test.ts +0 -226
  989. package/src/data/compression/compressible_asset.ts +0 -62
  990. package/src/data/compression/payload_compression_config.ts +0 -53
  991. package/src/data/compression/payload_compression_runner.ts +0 -102
  992. package/src/data/compression/payload_compressor.ts +0 -164
  993. package/src/data/compression/uri_compressible_asset.ts +0 -85
  994. package/src/data/dsl/builder/__tests__/config_builders.test.ts +0 -62
  995. package/src/data/dsl/builder/__tests__/interceptor_config_builder.test.ts +0 -173
  996. package/src/data/dsl/builder/cache_config_builder.ts +0 -28
  997. package/src/data/dsl/builder/config_builder.ts +0 -156
  998. package/src/data/dsl/builder/interceptor_config_builder.ts +0 -83
  999. package/src/data/dsl/builder/retry_config_builder.ts +0 -57
  1000. package/src/data/dsl/builder/timeout_config_builder.ts +0 -31
  1001. package/src/data/dsl/use_smile_id_network_builder.ts +0 -86
  1002. package/src/data/factory/__tests__/networking_factory_order.test.ts +0 -201
  1003. package/src/data/factory/__tests__/retry_gzip_mac_composition.test.ts +0 -163
  1004. package/src/data/factory/__tests__/signed_job_submission_headers.test.ts +0 -110
  1005. package/src/data/factory/networking_factory.ts +0 -201
  1006. package/src/data/model/__tests__/sdk_config.test.ts +0 -85
  1007. package/src/data/model/__tests__/sdk_config_capture.test.ts +0 -140
  1008. package/src/data/model/image_dimensions.ts +0 -15
  1009. package/src/data/model/job_request.ts +0 -150
  1010. package/src/data/model/job_submission_response.ts +0 -17
  1011. package/src/data/model/sdk_config.ts +0 -74
  1012. package/src/data/model/sdk_config_capture.ts +0 -78
  1013. package/src/data/model/sdk_config_source.ts +0 -26
  1014. package/src/data/repository/__tests__/network_retries.test.ts +0 -117
  1015. package/src/data/repository/__tests__/use_smile_id_repository.test.ts +0 -118
  1016. package/src/data/repository/use_smile_id_repository.ts +0 -19
  1017. package/src/data/repository/use_smile_id_repository_impl.ts +0 -181
  1018. package/src/data/security/__tests__/request_canonicalizer.test.ts +0 -132
  1019. package/src/data/security/__tests__/security_policy.test.ts +0 -96
  1020. package/src/data/security/__tests__/smile_id_crypto_manager.test.ts +0 -176
  1021. package/src/data/security/request_canonicalizer.ts +0 -161
  1022. package/src/data/security/request_timestamp.ts +0 -12
  1023. package/src/data/security/security_policy.ts +0 -70
  1024. package/src/data/security/signing_crypto.ts +0 -219
  1025. package/src/data/security/smile_id_crypto_error.ts +0 -13
  1026. package/src/data/security/smile_id_crypto_manager.ts +0 -46
  1027. package/src/data/smile_id_urls.ts +0 -13
  1028. package/src/data/util/__tests__/retry_util.test.ts +0 -182
  1029. package/src/data/util/__tests__/use_smile_id_token_decoder.test.ts +0 -251
  1030. package/src/data/util/retry_util.ts +0 -81
  1031. package/src/data/util/use_smile_id_token_decoder.ts +0 -186
  1032. package/src/index.ts +0 -514
  1033. package/src/l10n/__tests__/use_smile_id_localizations.test.ts +0 -127
  1034. package/src/l10n/strings_en.ts +0 -172
  1035. package/src/l10n/use_smile_id_localizations.ts +0 -691
  1036. package/src/l10n/use_smile_id_localizations_provider.tsx +0 -71
  1037. package/src/metadata/__tests__/device_orientation_collector.test.ts +0 -15
  1038. package/src/metadata/__tests__/metadata_configuration_mappers.test.ts +0 -254
  1039. package/src/metadata/__tests__/metadata_configuration_objects.test.ts +0 -86
  1040. package/src/metadata/__tests__/metadata_device_context.test.ts +0 -147
  1041. package/src/metadata/__tests__/metadata_device_os_android.test.ts +0 -18
  1042. package/src/metadata/__tests__/metadata_golden_fixture.json +0 -13
  1043. package/src/metadata/__tests__/metadata_payload_golden.test.ts +0 -193
  1044. package/src/metadata/__tests__/use_smile_id_metadata.test.ts +0 -430
  1045. package/src/metadata/builder_configuration.ts +0 -69
  1046. package/src/metadata/captured_image_properties.ts +0 -10
  1047. package/src/metadata/device_orientation_collector.ts +0 -75
  1048. package/src/metadata/document_image_origin.ts +0 -22
  1049. package/src/metadata/geolocation.ts +0 -46
  1050. package/src/metadata/metadata_configuration_mappers.ts +0 -248
  1051. package/src/metadata/model_configuration.ts +0 -68
  1052. package/src/metadata/optional_native_modules.ts +0 -274
  1053. package/src/metadata/use_smile_id_metadata.ts +0 -305
  1054. package/src/metadata/use_smile_id_metadata_factory.ts +0 -580
  1055. package/src/presentation/assets/si_document_green_book_hero_animation.json +0 -1
  1056. package/src/presentation/assets/si_document_hero_animation.json +0 -1
  1057. package/src/presentation/assets/si_document_hero_back_animation.json +0 -1
  1058. package/src/presentation/assets/si_document_passport_hero_animation.json +0 -1
  1059. package/src/presentation/assets/si_ess_all_directions_hero_animation.json +0 -1
  1060. package/src/presentation/assets/si_ess_animation_all_directions.json +0 -1
  1061. package/src/presentation/assets/si_selfie_hero_animation.json +0 -1
  1062. package/src/presentation/assets/si_smile_to_capture_animation.json +0 -1
  1063. package/src/presentation/assets/svg/document_shimmer_strings.ts +0 -17
  1064. package/src/presentation/assets/svg/instruction_svg_strings.ts +0 -54
  1065. package/src/presentation/assets/svg/svg_strings.ts +0 -158
  1066. package/src/presentation/components/__tests__/capture_instruction_animation_spec.test.ts +0 -49
  1067. package/src/presentation/components/__tests__/enhanced_smart_selfie_animation_frames.test.ts +0 -89
  1068. package/src/presentation/components/__tests__/use_smile_id_capture_content.test.tsx +0 -348
  1069. package/src/presentation/components/__tests__/use_smile_id_confirmation_buttons.test.tsx +0 -131
  1070. package/src/presentation/components/__tests__/use_smile_id_enhanced_smart_selfie_clip.test.tsx +0 -256
  1071. package/src/presentation/components/__tests__/use_smile_id_enhanced_smart_selfie_direction_animation.test.tsx +0 -138
  1072. package/src/presentation/components/__tests__/use_smile_id_face_overlay.test.tsx +0 -211
  1073. package/src/presentation/components/__tests__/use_smile_id_guideline_thumbnail.test.tsx +0 -112
  1074. package/src/presentation/components/__tests__/use_smile_id_instructions_hero.test.tsx +0 -150
  1075. package/src/presentation/components/__tests__/use_smile_id_loading_indicator.test.tsx +0 -45
  1076. package/src/presentation/components/__tests__/use_smile_id_oval_border_palette.test.ts +0 -103
  1077. package/src/presentation/components/face_oval_defaults.ts +0 -51
  1078. package/src/presentation/components/helpers/__tests__/scaled_oval_geometry.test.ts +0 -69
  1079. package/src/presentation/components/helpers/animated_lottie_view.ts +0 -9
  1080. package/src/presentation/components/helpers/capture_instruction_animation_spec.ts +0 -77
  1081. package/src/presentation/components/helpers/enhanced_smart_selfie_animation_frames.ts +0 -64
  1082. package/src/presentation/components/helpers/scaled_oval_geometry.ts +0 -44
  1083. package/src/presentation/components/icons/index.tsx +0 -334
  1084. package/src/presentation/components/status_indicator_state.ts +0 -21
  1085. package/src/presentation/components/use_smile_id_attribution.tsx +0 -48
  1086. package/src/presentation/components/use_smile_id_back_button.tsx +0 -59
  1087. package/src/presentation/components/use_smile_id_button.tsx +0 -93
  1088. package/src/presentation/components/use_smile_id_capture_content.tsx +0 -368
  1089. package/src/presentation/components/use_smile_id_capture_instruction_animation.tsx +0 -84
  1090. package/src/presentation/components/use_smile_id_capture_spinner.tsx +0 -63
  1091. package/src/presentation/components/use_smile_id_captured_document_image.tsx +0 -81
  1092. package/src/presentation/components/use_smile_id_captured_image_oval.tsx +0 -151
  1093. package/src/presentation/components/use_smile_id_card_surface.tsx +0 -54
  1094. package/src/presentation/components/use_smile_id_confirmation_buttons.tsx +0 -123
  1095. package/src/presentation/components/use_smile_id_consent_row.tsx +0 -58
  1096. package/src/presentation/components/use_smile_id_content_card.tsx +0 -65
  1097. package/src/presentation/components/use_smile_id_document_capture_controls.tsx +0 -219
  1098. package/src/presentation/components/use_smile_id_document_overlay.tsx +0 -335
  1099. package/src/presentation/components/use_smile_id_document_shimmer.tsx +0 -51
  1100. package/src/presentation/components/use_smile_id_enhanced_smart_selfie_clip.tsx +0 -155
  1101. package/src/presentation/components/use_smile_id_enhanced_smart_selfie_direction_animation.tsx +0 -46
  1102. package/src/presentation/components/use_smile_id_enhanced_smart_selfie_full_animation.tsx +0 -29
  1103. package/src/presentation/components/use_smile_id_expandable_icon.tsx +0 -102
  1104. package/src/presentation/components/use_smile_id_face_oval_image.tsx +0 -90
  1105. package/src/presentation/components/use_smile_id_face_overlay.tsx +0 -387
  1106. package/src/presentation/components/use_smile_id_failed_content.tsx +0 -94
  1107. package/src/presentation/components/use_smile_id_guideline_thumbnail.tsx +0 -263
  1108. package/src/presentation/components/use_smile_id_instructions_hero.tsx +0 -296
  1109. package/src/presentation/components/use_smile_id_learn_more_content.tsx +0 -115
  1110. package/src/presentation/components/use_smile_id_loading_content.tsx +0 -54
  1111. package/src/presentation/components/use_smile_id_loading_indicator.tsx +0 -81
  1112. package/src/presentation/components/use_smile_id_oval_border_palette.ts +0 -64
  1113. package/src/presentation/components/use_smile_id_partner_icon.tsx +0 -56
  1114. package/src/presentation/components/use_smile_id_processing_center_indicator.tsx +0 -77
  1115. package/src/presentation/components/use_smile_id_rounded_checkbox.tsx +0 -67
  1116. package/src/presentation/components/use_smile_id_status_indicator.tsx +0 -44
  1117. package/src/presentation/components/use_smile_id_success_content.tsx +0 -76
  1118. package/src/presentation/flow/__tests__/document_flow_navigation.test.ts +0 -484
  1119. package/src/presentation/flow/__tests__/flow_navigation_manager.test.ts +0 -1212
  1120. package/src/presentation/flow/analytics/__tests__/use_smile_id_analytics_event.test.ts +0 -105
  1121. package/src/presentation/flow/analytics/use_smile_id_analytics_event.ts +0 -83
  1122. package/src/presentation/flow/config/flow_configuration.ts +0 -12
  1123. package/src/presentation/flow/dsl/builder/__tests__/config_builder.test.ts +0 -25
  1124. package/src/presentation/flow/dsl/builder/__tests__/ml_builder.test.ts +0 -161
  1125. package/src/presentation/flow/dsl/builder/__tests__/theme_builder.test.ts +0 -102
  1126. package/src/presentation/flow/dsl/builder/config_builder.ts +0 -57
  1127. package/src/presentation/flow/dsl/builder/ml_builder.ts +0 -210
  1128. package/src/presentation/flow/dsl/builder/screens_builder.ts +0 -278
  1129. package/src/presentation/flow/dsl/builder/theme_builder.ts +0 -119
  1130. package/src/presentation/flow/dsl/flow_build_result.ts +0 -37
  1131. package/src/presentation/flow/dsl/use_smile_id_builder.tsx +0 -125
  1132. package/src/presentation/flow/dsl/use_smile_id_flow_builder.ts +0 -428
  1133. package/src/presentation/flow/flow_navigation_context.tsx +0 -50
  1134. package/src/presentation/flow/flow_navigation_manager.ts +0 -1156
  1135. package/src/presentation/flow/graph/screen_renderer.tsx +0 -35
  1136. package/src/presentation/flow/job_submission_state.ts +0 -17
  1137. package/src/presentation/flow/model/instruction_guideline.ts +0 -21
  1138. package/src/presentation/flow/model/instructions_defaults.ts +0 -198
  1139. package/src/presentation/flow/screen/helpers/__tests__/face_session_config.test.ts +0 -115
  1140. package/src/presentation/flow/screen/helpers/face_session_config.ts +0 -77
  1141. package/src/presentation/flow/screen/orchestrated_capture_screen.tsx +0 -344
  1142. package/src/presentation/flow/screen/orchestrated_consent_screen.tsx +0 -71
  1143. package/src/presentation/flow/screen/orchestrated_instructions_screen.tsx +0 -103
  1144. package/src/presentation/flow/screen/orchestrated_preview_screen.tsx +0 -62
  1145. package/src/presentation/flow/screen/orchestrated_processing_screen.tsx +0 -111
  1146. package/src/presentation/flow/screen/use_smile_id_orchestrated_screen_host.tsx +0 -39
  1147. package/src/presentation/flow/screen/validation_error_screen.tsx +0 -147
  1148. package/src/presentation/flow/use_smile_id_flow.tsx +0 -345
  1149. package/src/presentation/flow/validation/__tests__/flow_validator.test.ts +0 -458
  1150. package/src/presentation/flow/validation/__tests__/job_type_validator.test.ts +0 -768
  1151. package/src/presentation/flow/validation/flow_validator.ts +0 -462
  1152. package/src/presentation/flow/validation/job_type_validator.ts +0 -669
  1153. package/src/presentation/flow/validation/validation_state.ts +0 -65
  1154. package/src/presentation/screen/__tests__/capture_screen_helpers.test.ts +0 -112
  1155. package/src/presentation/screen/__tests__/capture_ui_state.test.ts +0 -398
  1156. package/src/presentation/screen/__tests__/consent_screen_helpers.test.ts +0 -63
  1157. package/src/presentation/screen/__tests__/ess_turn_haptics.test.ts +0 -82
  1158. package/src/presentation/screen/__tests__/feedback_debouncer.test.ts +0 -111
  1159. package/src/presentation/screen/__tests__/instructions_screen_helpers.test.ts +0 -154
  1160. package/src/presentation/screen/__tests__/preview_screen_helpers.test.ts +0 -53
  1161. package/src/presentation/screen/__tests__/processing_screen_helpers.test.ts +0 -39
  1162. package/src/presentation/screen/__tests__/scan_state_to_overlay_state.test.ts +0 -223
  1163. package/src/presentation/screen/__tests__/use_smile_id_capture_screen.test.tsx +0 -780
  1164. package/src/presentation/screen/__tests__/use_smile_id_consent_screen.test.tsx +0 -288
  1165. package/src/presentation/screen/__tests__/use_smile_id_document_back_instructions.test.tsx +0 -136
  1166. package/src/presentation/screen/__tests__/use_smile_id_instructions_screen.test.tsx +0 -245
  1167. package/src/presentation/screen/__tests__/use_smile_id_preview_screen.test.tsx +0 -193
  1168. package/src/presentation/screen/__tests__/use_smile_id_processing_screen.test.tsx +0 -333
  1169. package/src/presentation/screen/helpers/__tests__/use_capture_orientation_lock.test.tsx +0 -212
  1170. package/src/presentation/screen/helpers/capture_screen_helpers.ts +0 -152
  1171. package/src/presentation/screen/helpers/capture_ui_state.ts +0 -298
  1172. package/src/presentation/screen/helpers/consent_screen_helpers.ts +0 -106
  1173. package/src/presentation/screen/helpers/ess_turn_haptics.ts +0 -67
  1174. package/src/presentation/screen/helpers/feedback_debouncer.ts +0 -89
  1175. package/src/presentation/screen/helpers/instructions_screen_helpers.ts +0 -113
  1176. package/src/presentation/screen/helpers/preview_screen_helpers.ts +0 -41
  1177. package/src/presentation/screen/helpers/processing_screen_helpers.ts +0 -27
  1178. package/src/presentation/screen/helpers/scan_state_to_overlay_state.ts +0 -131
  1179. package/src/presentation/screen/helpers/use_capture_orientation_lock.ts +0 -108
  1180. package/src/presentation/screen/helpers/use_debounced_feedback_key.ts +0 -52
  1181. package/src/presentation/screen/use_smile_id_capture_screen.tsx +0 -861
  1182. package/src/presentation/screen/use_smile_id_consent_screen.tsx +0 -393
  1183. package/src/presentation/screen/use_smile_id_document_back_instructions.tsx +0 -125
  1184. package/src/presentation/screen/use_smile_id_document_preview_screen.tsx +0 -152
  1185. package/src/presentation/screen/use_smile_id_instructions_screen.tsx +0 -198
  1186. package/src/presentation/screen/use_smile_id_permission_screen.tsx +0 -52
  1187. package/src/presentation/screen/use_smile_id_preview_screen.tsx +0 -127
  1188. package/src/presentation/screen/use_smile_id_processing_screen.tsx +0 -223
  1189. package/src/presentation/state/__tests__/use_smile_id_overlay_state.test.ts +0 -30
  1190. package/src/presentation/state/processing_state.ts +0 -19
  1191. package/src/presentation/state/use_smile_id_overlay_state.ts +0 -70
  1192. package/src/presentation/theme/theme.ts +0 -401
  1193. package/src/presentation/theme/theme_context.tsx +0 -45
  1194. package/src/presentation/theme/use_smile_id_motion.ts +0 -12
  1195. package/src/presentation/theme/use_use_smile_id_fonts.ts +0 -71
  1196. package/src/presentation/utils/__tests__/force_max_brightness.test.tsx +0 -237
  1197. package/src/presentation/utils/__tests__/locale_utils.test.ts +0 -78
  1198. package/src/presentation/utils/force_max_brightness.tsx +0 -113
  1199. package/src/presentation/utils/locale_utils.ts +0 -80
  1200. package/src/presentation/utils/use_reduced_motion.ts +0 -26
  1201. package/src/testing/__tests__/fake_face_analyzer.test.ts +0 -42
  1202. package/src/testing/__tests__/scenario_expectations.test.ts +0 -110
  1203. package/src/testing/__tests__/scenario_loader.test.ts +0 -64
  1204. package/src/testing/fake_face_analyzer.ts +0 -82
  1205. package/src/testing/index.ts +0 -15
  1206. package/src/testing/scenario_expectations.ts +0 -87
  1207. package/src/testing/scenario_loader.ts +0 -83
  1208. package/src/testing/scripted_scan_results.ts +0 -66
  1209. /package/{src → dist}/presentation/assets/fonts/DMSans-Bold.ttf +0 -0
  1210. /package/{src → dist}/presentation/assets/fonts/DMSans-ExtraBold.ttf +0 -0
  1211. /package/{src → dist}/presentation/assets/fonts/DMSans-Medium.ttf +0 -0
  1212. /package/{src → dist}/presentation/assets/fonts/DMSans-Regular.ttf +0 -0
  1213. /package/{src → dist}/presentation/assets/fonts/DMSans-SemiBold.ttf +0 -0
  1214. /package/{src → dist}/presentation/assets/fonts/OFL.txt +0 -0
  1215. /package/{src → dist}/presentation/assets/si_dark_lighting_animation.json +0 -0
  1216. /package/{src → dist}/presentation/assets/si_device_orientation_animation.json +0 -0
  1217. /package/{src → dist}/presentation/assets/svg/si_attribution.svg +0 -0
  1218. /package/{src → dist}/presentation/assets/svg/si_attribution_dark.svg +0 -0
  1219. /package/{src → dist}/presentation/assets/svg/si_checkbox_check.svg +0 -0
  1220. /package/{src → dist}/presentation/assets/svg/si_consent_biometric.svg +0 -0
  1221. /package/{src → dist}/presentation/assets/svg/si_consent_biometric_dark.svg +0 -0
  1222. /package/{src → dist}/presentation/assets/svg/si_consent_contact.svg +0 -0
  1223. /package/{src → dist}/presentation/assets/svg/si_consent_contact_dark.svg +0 -0
  1224. /package/{src → dist}/presentation/assets/svg/si_consent_device.svg +0 -0
  1225. /package/{src → dist}/presentation/assets/svg/si_consent_device_dark.svg +0 -0
  1226. /package/{src → dist}/presentation/assets/svg/si_consent_personal.svg +0 -0
  1227. /package/{src → dist}/presentation/assets/svg/si_consent_personal_dark.svg +0 -0
  1228. /package/{src → dist}/presentation/assets/svg/si_expand_more.svg +0 -0
  1229. /package/{src → dist}/presentation/assets/svg/si_plus.svg +0 -0
  1230. /package/{src → dist}/presentation/assets/svg/si_smile_consent_icon.svg +0 -0
@@ -1,1156 +0,0 @@
1
- import type { ScreenSpec } from "./dsl/builder/screens_builder";
2
- import type { FlowConfigurationSnapshot } from "./dsl/use_smile_id_flow_builder";
3
- import type { JobSubmissionState } from "./job_submission_state";
4
- import type {
5
- DocumentVerificationRequest,
6
- EnhancedDocumentVerificationRequest,
7
- JobRequest,
8
- } from "../../data/model/job_request";
9
- import type { UseSmileIDRepository } from "../../data/repository/use_smile_id_repository";
10
- import type {
11
- ConsentInformation,
12
- DocumentVerificationParams,
13
- EnhancedDocumentVerificationParams,
14
- UserDetails,
15
- } from "../../core/models/params";
16
- import { JobType } from "../../core/models/job_type";
17
- import { CaptureType } from "../../core/models/ml_config";
18
- import {
19
- defaultFrameAspectRatio,
20
- type DocumentType,
21
- } from "../../core/models/document_type";
22
- import type { JobSubmissionResponse } from "../../data/model/job_submission_response";
23
- import { MissingRequiredFieldException } from "../../core/exception/job_validation_exceptions";
24
- import {
25
- UseSmileIDAnalyticsEventTypes,
26
- UseSmileIDAnalyticsParamKeys,
27
- UseSmileIDAnalyticsScreenNames,
28
- type UseSmileIDAnalyticsEventType,
29
- } from "./analytics/use_smile_id_analytics_event";
30
- import type {
31
- MetadataEntry,
32
- UseSmileIDMetadata,
33
- } from "../../metadata/use_smile_id_metadata";
34
- import {
35
- UseSmileIDMetadataFactory,
36
- type MetadataProvider,
37
- } from "../../metadata/use_smile_id_metadata_factory";
38
- import {
39
- DOCUMENT_BACK_IMAGE_ORIGIN_KEY,
40
- DOCUMENT_FRONT_IMAGE_ORIGIN_KEY,
41
- type DocumentImageOrigin,
42
- } from "../../metadata/document_image_origin";
43
- import { configurationMetadataEntries } from "../../metadata/metadata_configuration_mappers";
44
- import {
45
- CAPTURE_IMAGE_COLOR_DEPTH,
46
- CAPTURE_IMAGE_PIXEL_CONFIG,
47
- } from "../../metadata/captured_image_properties";
48
- import type { CaptureTelemetry } from "../screen/use_smile_id_capture_screen";
49
- import type { SdkConfig } from "../../data/model/sdk_config";
50
- import { numSamplesOverride } from "../../data/model/sdk_config";
51
- import {
52
- decodeSmileIDToken,
53
- type DecodedToken,
54
- } from "../../data/util/use_smile_id_token_decoder";
55
- import {
56
- DocumentSide,
57
- EnhancedSmartSelfieConfig,
58
- } from "@smileid/usesmileid_bridge";
59
- import { ScanPerformanceProfile } from "@smileid/usesmileid_bridge";
60
-
61
- /**
62
- * Internal flow navigation manager — owns the screen cursor, captured
63
- * artifacts, navigation primitives, job submission lifecycle, and a
64
- * subscribe pattern for React re-renders.
65
- *
66
- * Custom (not Expo Router / React Navigation) because screens are
67
- * partner-configurable via the DSL, not file-based routes; forcing a
68
- * routing library would conflict with the partner's own app routing.
69
- */
70
- type Listener = () => void;
71
-
72
- export type CapturedArtifacts = {
73
- readonly selfiePath?: string;
74
- readonly livenessPaths: readonly string[];
75
- readonly frontDocumentPath?: string;
76
- readonly backDocumentPath?: string;
77
- readonly consentInformation?: ConsentInformation;
78
- };
79
-
80
- export type FlowExitReason =
81
- | { readonly kind: "completed"; readonly job: JobSubmissionResponse }
82
- | { readonly kind: "cancelled" }
83
- | { readonly kind: "failed"; readonly error: unknown };
84
-
85
- export type FlowExitHandler = (reason: FlowExitReason) => void;
86
-
87
- export type FlowNavigationManagerOptions = {
88
- readonly configuration: FlowConfigurationSnapshot;
89
- readonly onExit: FlowExitHandler;
90
- /**
91
- * Dispatches the assembled `JobRequest`. Optional so capture-only /
92
- * UI-only harnesses (no `b.network(...)`) can still mount. When
93
- * absent, `beginSubmissionIfNeeded()` goes straight to a descriptive
94
- * `failure` rather than spinning forever.
95
- */
96
- readonly repository?: UseSmileIDRepository;
97
- /**
98
- * Per-flow metadata provider; each `JobRequest` carries a fresh
99
- * `metadata` snapshot via `make()`. Optional — capture-only harnesses
100
- * fall back to a default factory. Production passes the same provider
101
- * the networking factory created so `session_id` stays stable across
102
- * every submission in the flow.
103
- */
104
- readonly metadataProvider?: MetadataProvider;
105
- };
106
-
107
- const DEFAULT_CONSENT: ConsentInformation = Object.freeze({
108
- granted: false,
109
- grantedAt: "",
110
- noticeLanguage: "",
111
- noticePrivacyPolicyUrl: "",
112
- });
113
-
114
- export class FlowNavigationManager {
115
- /**
116
- * Navigation stack and source of truth — top is the active screen.
117
- * Active screen + first/last predicates derive from this path (no
118
- * parallel index). Mutated only via the navigate* methods.
119
- */
120
- private _navigationPath: ScreenSpec[] = [];
121
- private _captured: CapturedArtifacts = { livenessPaths: [] };
122
- /**
123
- * Set once the partner skips the document back side via the flip
124
- * interstitial. Routes `getNextScreen()` past the back capture's preview so
125
- * submission proceeds with `backDocument` unset. Cleared when the front is
126
- * retaken.
127
- */
128
- private _documentBackSkipped = false;
129
- /**
130
- * How each captured document side was produced (auto / manual / gallery).
131
- * Emitted as `DocumentFront/BackImageOrigin` submission metadata; an entry is
132
- * removed when its side is retaken.
133
- */
134
- private readonly _documentImageOrigins = new Map<
135
- DocumentSide,
136
- DocumentImageOrigin
137
- >();
138
- // Capture telemetry recorded at capture completion (selfie + per document side).
139
- private _selfieCaptureTelemetry: CaptureTelemetry | undefined;
140
- private readonly _documentCaptureTelemetry = new Map<
141
- DocumentSide,
142
- CaptureTelemetry
143
- >();
144
- // Identifier of the camera used for the most recent capture.
145
- private _cameraName: string | undefined;
146
- // Accelerometer telemetry from the most recent capture (device_positions / movement).
147
- private _devicePositions: readonly string[] = [];
148
- private _deviceMovementDetected: number | null = null;
149
- private _jobSubmissionState: JobSubmissionState = { kind: "notAttempted" };
150
- private readonly _listeners = new Set<Listener>();
151
- private readonly _steps: readonly ScreenSpec[];
152
- private readonly _configuration: FlowConfigurationSnapshot;
153
- private readonly _repository: UseSmileIDRepository | undefined;
154
- private readonly _metadataProvider: MetadataProvider;
155
- private readonly _onExit: FlowExitHandler;
156
- private _disposed = false;
157
- private _submissionResponse: JobSubmissionResponse | undefined;
158
-
159
- /**
160
- * Decoded `sdk_config` JWT claim, resolved once at construction.
161
- * `undefined` for offline mode / no token / no valid claim — SDK
162
- * defaults apply throughout the flow in those cases.
163
- */
164
- readonly resolvedSdkConfig: SdkConfig | undefined;
165
-
166
- /** Canonical `partner_id` decoded from the JWT (raw); resolved via the [partnerId] getter. */
167
- private readonly _resolvedPartnerId: string | undefined;
168
-
169
- /**
170
- * Partner identifier the capture screen stamps into the Smile EXIF tag — the tag's HMAC/AES
171
- * keys derive from it and the backend validates the tag against the request's partner_id.
172
- *
173
- * Sourced from the JWT `partner_id` claim (server-canonical form, e.g. `"002"`) so the stamped
174
- * value matches what the backend keys on; falls back to the partner-supplied config value when
175
- * the claim is absent/blank. Empty = skip tagging.
176
- */
177
- get partnerId(): string {
178
- const jwtPartnerId = this._resolvedPartnerId;
179
- if (jwtPartnerId && jwtPartnerId.length > 0) return jwtPartnerId;
180
- return this._configuration.network?.config?.partnerConfig?.partnerId ?? "";
181
- }
182
-
183
- /** Stable per-flow session id, stamped into every analytics event's `session_id`. */
184
- private readonly _sessionId: string;
185
-
186
- /** Submission attempts so far — stamped into `job_submitted` as `attempt`. */
187
- private _submissionAttemptCount = 0;
188
-
189
- constructor(options: FlowNavigationManagerOptions) {
190
- this._configuration = options.configuration;
191
- this._steps = options.configuration.screens.steps;
192
- this._onExit = options.onExit;
193
- this._repository = options.repository;
194
- // Fall back to a fresh factory so capture-only harnesses still build
195
- // well-formed requests; the factory reads expo-device lazily and
196
- // degrades to empty values when the peer dep is absent.
197
- this._metadataProvider =
198
- options.metadataProvider ?? new UseSmileIDMetadataFactory();
199
- this._sessionId = this._metadataProvider.sessionId;
200
- const decodedToken = FlowNavigationManager._decodeToken(
201
- options.configuration,
202
- );
203
- this.resolvedSdkConfig = decodedToken?.sdkConfig;
204
- this._resolvedPartnerId = decodedToken?.partnerId;
205
- // Seed the path with the first screen so currentScreen/renderer have a
206
- // deterministic start. Empty path → host renders the "no screens"
207
- // sentinel (validation rejects empty screens at build time anyway).
208
- const firstScreen = this._steps[0];
209
- if (firstScreen) {
210
- this._navigationPath = [firstScreen];
211
- }
212
- this._logEvent(UseSmileIDAnalyticsEventTypes.flowStarted, {
213
- [UseSmileIDAnalyticsParamKeys.jobType]: this._jobTypeName(),
214
- });
215
- if (firstScreen) {
216
- this._logEvent(UseSmileIDAnalyticsEventTypes.screenViewed, {
217
- [UseSmileIDAnalyticsParamKeys.screenName]:
218
- this._screenAnalyticsName(firstScreen),
219
- });
220
- }
221
- }
222
-
223
- get configuration(): FlowConfigurationSnapshot {
224
- return this._configuration;
225
- }
226
-
227
- /** Whether any selfie step enabled Enhanced Smart Selfie (drives the instructions hero swap and oval-progress suppression). */
228
- get enhancedLivenessEnabled(): boolean {
229
- return this._steps.some(
230
- (step) =>
231
- step.kind === "capture" &&
232
- step.config.selfieConfig?.enableEnhancedLiveness === true,
233
- );
234
- }
235
-
236
- /** Document type from the flow's document capture step, if any (drives the instructions document variant). */
237
- get documentType(): DocumentType | undefined {
238
- for (const step of this._steps) {
239
- if (
240
- step.kind === "capture" &&
241
- step.config.captureType === CaptureType.document
242
- ) {
243
- return step.config.documentConfig?.documentType;
244
- }
245
- }
246
- return undefined;
247
- }
248
-
249
- /**
250
- * Resolved document capture-frame aspect ratio (width / height), shared by
251
- * capture, preview, and processing. Precedence: type `knownAspectRatio` →
252
- * partner `knownIdAspectRatio` → orientation default.
253
- */
254
- get documentFrameAspectRatio(): number | undefined {
255
- for (const step of this._steps) {
256
- if (
257
- step.kind === "capture" &&
258
- step.config.captureType === CaptureType.document
259
- ) {
260
- const documentConfig = step.config.documentConfig;
261
- return (
262
- documentConfig?.resolvedAspectRatio ??
263
- defaultFrameAspectRatio(
264
- documentConfig?.documentType?.orientation ?? "Landscape",
265
- )
266
- );
267
- }
268
- }
269
- return undefined;
270
- }
271
-
272
- // --- navigation path --------------------------------------------------
273
-
274
- /** Read-only navigation stack; top is the active screen. */
275
- get navigationPath(): readonly ScreenSpec[] {
276
- return this._navigationPath;
277
- }
278
-
279
- /** Active screen (top of the path); `undefined` only when no screens are configured. */
280
- get currentScreen(): ScreenSpec | undefined {
281
- return this._navigationPath[this._navigationPath.length - 1];
282
- }
283
-
284
- /**
285
- * Depth of the active screen — stable id for React view identity so
286
- * stack frames at the same configured-screen position stay distinct.
287
- */
288
- get currentDepth(): number {
289
- return this._navigationPath.length - 1;
290
- }
291
-
292
- get isFirstScreen(): boolean {
293
- return this._navigationPath.length <= 1;
294
- }
295
-
296
- get isLastScreen(): boolean {
297
- return this.getNextScreen() === undefined;
298
- }
299
-
300
- /** Next screen `navigateToNext()` would land on; `undefined` at the terminal screen. */
301
- getNextScreen(): ScreenSpec | undefined {
302
- const current = this.currentScreen;
303
- if (!current) return undefined;
304
- const currentIdx = this._steps.indexOf(current);
305
- if (currentIdx < 0) return undefined;
306
-
307
- // Per-side document loop: after previewing the FRONT, route back to the
308
- // document capture step to capture the BACK. Gated so it fires only on a
309
- // document preview with the back still pending and not skipped — the back
310
- // preview (back already captured) falls through to the linear next step.
311
- if (
312
- current.kind === "preview" &&
313
- this._precedingStepIsDocumentCapture(currentIdx) &&
314
- this.documentCapturesBack() &&
315
- this._captured.backDocumentPath === undefined &&
316
- !this._documentBackSkipped
317
- ) {
318
- const documentCapture = this._steps[currentIdx - 1];
319
- if (documentCapture !== undefined) return documentCapture;
320
- }
321
-
322
- // Back skipped at the interstitial: skip the document preview that would
323
- // otherwise follow the capture and advance past it (no back to preview).
324
- if (
325
- current.kind === "capture" &&
326
- current.config.captureType === CaptureType.document &&
327
- this._documentBackSkipped
328
- ) {
329
- const next = this._steps[currentIdx + 1];
330
- if (next?.kind === "preview") return this._steps[currentIdx + 2];
331
- }
332
-
333
- // At the document capture step with the front captured, the back still
334
- // pending, and no document preview to drive the per-side loop, re-enter the
335
- // capture step for the back side so captureBothSides is honoured even when
336
- // the flow omits the document preview { } step. When a preview does follow,
337
- // the per-side loop above handles the back instead.
338
- if (
339
- current.kind === "capture" &&
340
- current.config.captureType === CaptureType.document &&
341
- this.documentCapturesBack() &&
342
- this._captured.frontDocumentPath !== undefined &&
343
- this._captured.backDocumentPath === undefined &&
344
- !this._documentBackSkipped &&
345
- !this.documentPreviewFollowsCapture()
346
- ) {
347
- return current;
348
- }
349
-
350
- return this._steps[currentIdx + 1];
351
- }
352
-
353
- /**
354
- * Advance to the next screen. Past the last screen, exits via `onExit`
355
- * `{ kind: 'completed', job }` (job is the successful response, or an
356
- * empty-fields stand-in for flows with no processing screen).
357
- *
358
- * Advancing into a `processing` screen sets `loading` synchronously
359
- * before the async submit, closing the race with the screen's
360
- * mount-time `beginSubmissionIfNeeded()` so it never flashes
361
- * `notAttempted`.
362
- */
363
- navigateToNext(): void {
364
- if (this._disposed) return;
365
- const nextScreen = this.getNextScreen();
366
- if (!nextScreen) {
367
- // Past the last screen: deliver the stored success response,
368
- // surface a failure, else the empty-fields completed carrier
369
- // (flows with no processing screen still get `completed`).
370
- const state = this._jobSubmissionState;
371
- if (this._submissionResponse) {
372
- this._finishFlow({ kind: "completed", job: this._submissionResponse });
373
- return;
374
- }
375
- if (state.kind === "failure") {
376
- this._finishFlow({ kind: "failed", error: state.error });
377
- return;
378
- }
379
- const job: JobSubmissionResponse =
380
- state.kind === "success"
381
- ? state.response
382
- : { userId: "", jobId: "", status: "", message: "" };
383
- this._finishFlow({ kind: "completed", job });
384
- return;
385
- }
386
- this._navigationPath = [...this._navigationPath, nextScreen];
387
- this._logEvent(UseSmileIDAnalyticsEventTypes.screenViewed, {
388
- [UseSmileIDAnalyticsParamKeys.screenName]:
389
- this._screenAnalyticsName(nextScreen),
390
- });
391
- // Mark loading synchronously so the processing screen's mount-time
392
- // beginSubmissionIfNeeded() sees the transition has started — guards
393
- // the brief notAttempted flash before the async submit is scheduled.
394
- if (
395
- nextScreen.kind === "processing" &&
396
- this._jobSubmissionState.kind === "notAttempted" &&
397
- this._repository !== undefined
398
- ) {
399
- this._jobSubmissionState = { kind: "loading" };
400
- }
401
- this._notify();
402
- if (
403
- nextScreen.kind === "processing" &&
404
- this._jobSubmissionState.kind === "loading" &&
405
- this._repository !== undefined
406
- ) {
407
- // Macrotask defer so React paints the loading processing screen
408
- // before _submit blocks the JS thread with request assembly +
409
- // signing. The pre-set loading keeps beginSubmissionIfNeeded() a
410
- // no-op, so it still submits exactly once.
411
- setTimeout(() => {
412
- if (this._disposed) return;
413
- void this._submit();
414
- }, 0);
415
- }
416
- }
417
-
418
- /** Pop the active screen; from the first screen, exits via `onExit` `{ kind: 'cancelled' }`. */
419
- navigateBack(): void {
420
- if (this._disposed) return;
421
- if (this.isFirstScreen) {
422
- this._onExit({ kind: "cancelled" });
423
- return;
424
- }
425
- // Going back from a non-first screen is a retake of the prior step.
426
- this._logEvent(UseSmileIDAnalyticsEventTypes.retakeRequested);
427
- this._navigationPath = this._navigationPath.slice(0, -1);
428
- this._notify();
429
- }
430
-
431
- /** Reset the path to the first screen (flow restart after terminal failure, manager kept alive). */
432
- navigateToStart(): void {
433
- if (this._disposed) return;
434
- const firstScreen = this._steps[0];
435
- this._navigationPath = firstScreen ? [firstScreen] : [];
436
- this._notify();
437
- }
438
-
439
- /** Exit the flow with a partner-supplied reason (processing onExit, consent denied, etc.). */
440
- exit(reason: FlowExitReason = { kind: "cancelled" }): void {
441
- if (this._disposed) return;
442
- this._finishFlow(reason);
443
- }
444
-
445
- // --- captured artifacts -----------------------------------------------
446
-
447
- get captured(): CapturedArtifacts {
448
- return this._captured;
449
- }
450
-
451
- setCapturedSelfie(
452
- selfiePath: string,
453
- livenessPaths: readonly string[],
454
- ): void {
455
- if (this._disposed) return;
456
- this._captured = {
457
- ...this._captured,
458
- selfiePath,
459
- livenessPaths: Object.freeze([...livenessPaths]),
460
- };
461
- this._logEvent(UseSmileIDAnalyticsEventTypes.selfieCaptured, {
462
- [UseSmileIDAnalyticsParamKeys.livenessImageCount]: String(
463
- livenessPaths.length,
464
- ),
465
- });
466
- this._notify();
467
- }
468
-
469
- setCapturedFrontDocument(path: string): void {
470
- if (this._disposed) return;
471
- this._captured = { ...this._captured, frontDocumentPath: path };
472
- this._logEvent(UseSmileIDAnalyticsEventTypes.documentCaptured, {
473
- [UseSmileIDAnalyticsParamKeys.documentSide]: "front",
474
- });
475
- this._notify();
476
- }
477
-
478
- setCapturedBackDocument(path: string): void {
479
- if (this._disposed) return;
480
- this._captured = { ...this._captured, backDocumentPath: path };
481
- // `both` is the single completion-event value for a two-sided capture.
482
- this._logEvent(UseSmileIDAnalyticsEventTypes.documentCaptured, {
483
- [UseSmileIDAnalyticsParamKeys.documentSide]: "both",
484
- });
485
- this._notify();
486
- }
487
-
488
- // --- document per-side preview loop -----------------------------------
489
-
490
- /** Whether the configured document capture asks for a back side. */
491
- documentCapturesBack(): boolean {
492
- for (const step of this._steps) {
493
- if (
494
- step.kind === "capture" &&
495
- step.config.captureType === CaptureType.document
496
- ) {
497
- const documentConfig = step.config.documentConfig;
498
- return (
499
- documentConfig?.documentType?.hasBackSide === true &&
500
- (documentConfig?.captureBothSides ?? false)
501
- );
502
- }
503
- }
504
- return false;
505
- }
506
-
507
- /** Whether a `preview {}` immediately follows the document capture step. */
508
- documentPreviewFollowsCapture(): boolean {
509
- const index = this._steps.findIndex(
510
- (step) =>
511
- step.kind === "capture" &&
512
- step.config.captureType === CaptureType.document,
513
- );
514
- if (index < 0) return false;
515
- return this._steps[index + 1]?.kind === "preview";
516
- }
517
-
518
- /** Whether the active preview previews a document side (vs the selfie). */
519
- currentPreviewIsDocument(): boolean {
520
- const current = this.currentScreen;
521
- if (!current || current.kind !== "preview") return false;
522
- return this._precedingStepIsDocumentCapture(this._steps.indexOf(current));
523
- }
524
-
525
- /** Path of the document side under review: the back if captured, else the front. */
526
- currentDocumentPreviewPath(): string | undefined {
527
- return this._captured.backDocumentPath ?? this._captured.frontDocumentPath;
528
- }
529
-
530
- /**
531
- * Discard the side under review for re-capture: the back if captured,
532
- * else the front (which also un-skips the back). Does not navigate.
533
- */
534
- retakeCurrentDocumentSide(): void {
535
- if (this._disposed) return;
536
- const next: {
537
- -readonly [K in keyof CapturedArtifacts]: CapturedArtifacts[K];
538
- } = { ...this._captured };
539
- if (next.backDocumentPath !== undefined) {
540
- delete next.backDocumentPath;
541
- this._documentImageOrigins.delete(DocumentSide.Back);
542
- } else {
543
- delete next.frontDocumentPath;
544
- this._documentImageOrigins.delete(DocumentSide.Front);
545
- this._documentBackSkipped = false;
546
- }
547
- this._captured = next;
548
- this._notify();
549
- }
550
-
551
- /** Skip the document back side from the flip interstitial ("Skip"). */
552
- skipDocumentBack(): void {
553
- if (this._disposed) return;
554
- this._documentBackSkipped = true;
555
- this._notify();
556
- }
557
-
558
- /**
559
- * Record how a side was produced (→ `DocumentFront/BackImageOrigin`
560
- * metadata). Metadata-only, so it intentionally does not `_notify()`.
561
- */
562
- recordDocumentImageOrigin(
563
- side: DocumentSide,
564
- origin: DocumentImageOrigin,
565
- ): void {
566
- if (this._disposed) return;
567
- this._documentImageOrigins.set(side, origin);
568
- }
569
-
570
- /** Records selfie capture telemetry (duration + retries) at capture completion. */
571
- recordSelfieCaptureTelemetry(telemetry: CaptureTelemetry): void {
572
- if (this._disposed) return;
573
- this._selfieCaptureTelemetry = telemetry;
574
- this._captureCameraName(telemetry);
575
- }
576
-
577
- /** Records per-side document capture telemetry at each side's completion. */
578
- recordDocumentCaptureTelemetry(
579
- side: DocumentSide,
580
- telemetry: CaptureTelemetry,
581
- ): void {
582
- if (this._disposed) return;
583
- this._documentCaptureTelemetry.set(side, telemetry);
584
- this._captureCameraName(telemetry);
585
- }
586
-
587
- private _captureCameraName(telemetry: CaptureTelemetry): void {
588
- if (telemetry.cameraName) this._cameraName = telemetry.cameraName;
589
- if (telemetry.devicePositions.length > 0) {
590
- this._devicePositions = telemetry.devicePositions;
591
- this._deviceMovementDetected = telemetry.deviceMovementDetected;
592
- }
593
- }
594
-
595
- /** Per-side document origin wire entries (front then back; omitted when unset). */
596
- private _documentImageOriginEntries(): MetadataEntry[] {
597
- const entries: MetadataEntry[] = [];
598
- const front = this._documentImageOrigins.get(DocumentSide.Front);
599
- if (front !== undefined) {
600
- entries.push({ name: DOCUMENT_FRONT_IMAGE_ORIGIN_KEY, value: front });
601
- }
602
- const back = this._documentImageOrigins.get(DocumentSide.Back);
603
- if (back !== undefined) {
604
- entries.push({ name: DOCUMENT_BACK_IMAGE_ORIGIN_KEY, value: back });
605
- }
606
- return entries;
607
- }
608
-
609
- /**
610
- * Capture telemetry + image-property wire entries. Durations and retries keep
611
- * a meaningful 0 (capture ran) and are omitted only when that capture type
612
- * never ran. Color depth / pixel config are emitted for each present capture;
613
- * document sizes when measured.
614
- */
615
- private _captureTelemetryEntries(): MetadataEntry[] {
616
- const entries: MetadataEntry[] = [];
617
- const push = (name: string, value: string) => entries.push({ name, value });
618
-
619
- const selfie = this._selfieCaptureTelemetry;
620
- if (selfie) {
621
- // Duration + retries keep a meaningful 0 (capture ran); telemetry is absent only when the
622
- // capture type never ran.
623
- push("selfie_capture_duration_ms", String(selfie.durationMs));
624
- push("selfie_capture_retries", String(selfie.retries));
625
- }
626
- if (this._captured.selfiePath !== undefined) {
627
- push("selfie_image_color_depth", String(CAPTURE_IMAGE_COLOR_DEPTH));
628
- push("selfie_image_pixel_config", CAPTURE_IMAGE_PIXEL_CONFIG);
629
- }
630
- if (this._cameraName) {
631
- push("camera_name", this._cameraName);
632
- }
633
- if (this._devicePositions.length > 0) {
634
- push("device_positions", JSON.stringify(this._devicePositions));
635
- if (this._deviceMovementDetected !== null) {
636
- push("device_movement_detected", String(this._deviceMovementDetected));
637
- }
638
- }
639
-
640
- const sideKey = (side: DocumentSide) =>
641
- side === DocumentSide.Back ? "back" : "front";
642
- for (const side of [DocumentSide.Front, DocumentSide.Back]) {
643
- const key = sideKey(side);
644
- const telemetry = this._documentCaptureTelemetry.get(side);
645
- if (telemetry) {
646
- push(
647
- `document_${key}_capture_duration_ms`,
648
- String(telemetry.durationMs),
649
- );
650
- push(`document_${key}_capture_retries`, String(telemetry.retries));
651
- push(
652
- `document_${key}_image_color_depth`,
653
- String(CAPTURE_IMAGE_COLOR_DEPTH),
654
- );
655
- push(`document_${key}_image_pixel_config`, CAPTURE_IMAGE_PIXEL_CONFIG);
656
- }
657
- }
658
- // Per-image original + final compressed sizes are stamped in the repository around the
659
- // compression pass (it owns both the before and after byte counts), not here.
660
- return entries;
661
- }
662
-
663
- private _precedingStepIsDocumentCapture(index: number): boolean {
664
- const preceding = this._steps[index - 1];
665
- return (
666
- preceding?.kind === "capture" &&
667
- preceding.config.captureType === CaptureType.document
668
- );
669
- }
670
-
671
- setConsent(info: ConsentInformation): void {
672
- if (this._disposed) return;
673
- this._captured = { ...this._captured, consentInformation: info };
674
- this._logEvent(UseSmileIDAnalyticsEventTypes.consentCaptured, {
675
- [UseSmileIDAnalyticsParamKeys.decision]: "granted",
676
- });
677
- this._notify();
678
- }
679
-
680
- // --- job submission ---------------------------------------------------
681
-
682
- get jobSubmissionState(): JobSubmissionState {
683
- return this._jobSubmissionState;
684
- }
685
-
686
- /**
687
- * Idempotent submission entry point (called on processing-screen
688
- * mount). The `notAttempted` guard prevents re-mounts re-firing.
689
- */
690
- beginSubmissionIfNeeded(): void {
691
- if (this._disposed) return;
692
- if (this._jobSubmissionState.kind !== "notAttempted") return;
693
- void this._submit();
694
- }
695
-
696
- /**
697
- * Reset to `notAttempted` and re-fire submission (processing screen's
698
- * onRetry). Ignored while a submission is in flight — resetting then would
699
- * defeat `beginSubmissionIfNeeded()`'s single-flight guard.
700
- */
701
- retrySubmission(): void {
702
- if (this._disposed) return;
703
- if (this._jobSubmissionState.kind === "loading") return;
704
- this._setSubmissionState({ kind: "notAttempted" });
705
- this.beginSubmissionIfNeeded();
706
- }
707
-
708
- private _setSubmissionState(state: JobSubmissionState): void {
709
- if (this._disposed) return;
710
- this._jobSubmissionState = state;
711
- this._notify();
712
- }
713
-
714
- /**
715
- * Build the request, dispatch via repository, update state. Errors
716
- * from `_assembleJob` (missing captures / bad job type) map to the
717
- * `failure` state rather than propagating as unhandled rejections.
718
- */
719
- private async _submit(): Promise<void> {
720
- if (!this._repository) {
721
- this._setSubmissionState({
722
- kind: "failure",
723
- error: new Error(
724
- "Job submission not configured — no network/repository was " +
725
- "supplied to <UseSmileIDBuilder>. Call `b.network((n) => n.config((c) => " +
726
- "{ c.token = ...; c.partnerConfig((p) => { p.partnerId = ...; }); }))`.",
727
- ),
728
- });
729
- return;
730
- }
731
-
732
- let request: JobRequest;
733
- try {
734
- request = this._assembleJob();
735
- } catch (error) {
736
- this._setSubmissionState({
737
- kind: "failure",
738
- error: error instanceof Error ? error : new Error(String(error)),
739
- });
740
- return;
741
- }
742
-
743
- this._setSubmissionState({ kind: "loading" });
744
- this._submissionAttemptCount += 1;
745
- this._logEvent(UseSmileIDAnalyticsEventTypes.jobSubmitted, {
746
- [UseSmileIDAnalyticsParamKeys.jobType]: this._jobTypeName(),
747
- [UseSmileIDAnalyticsParamKeys.attempt]: String(
748
- this._submissionAttemptCount,
749
- ),
750
- });
751
- const result = await this._repository.submit(request);
752
- if (this._disposed) return;
753
- if (result.status === "success") {
754
- // Cache so a later navigateToNext() past the last screen can
755
- // deliver the result without rebuilding the request (capture
756
- // artifacts may have been released by then).
757
- this._submissionResponse = result.value;
758
- this._setSubmissionState({ kind: "success", response: result.value });
759
- } else if (result.status === "failure") {
760
- // `result.error` is `unknown`; coerce defensively in case a
761
- // mock/partner repository hands back a non-Error.
762
- const error =
763
- result.error instanceof Error
764
- ? result.error
765
- : new Error(String(result.error));
766
- this._setSubmissionState({ kind: "failure", error });
767
- }
768
- // No `cancelled` branch: that outcome comes only from a user-initiated exit.
769
- }
770
-
771
- /**
772
- * Build a typed `JobRequest` from `jobType` + captured artifacts.
773
- * Throws a descriptive message when a required capture is missing.
774
- */
775
- private _assembleJob(): JobRequest {
776
- const config = this._configuration;
777
- const jobType = config.network?.config?.jobType ?? JobType.unknown;
778
- const consent =
779
- this._captured.consentInformation ??
780
- config.consentInformation ??
781
- DEFAULT_CONSENT;
782
- // Build the per-submission metadata snapshot so it travels on the
783
- // request (API layer serializes `request.metadata` directly).
784
- // Dynamic fields (orientation, locale, timezone) re-resolve per
785
- // make() so a mid-flow rotation is captured. resolvedSdkConfig drives
786
- // sdk_config_source + image_width/height provenance.
787
- const baseMetadata = this._metadataProvider.make(this.resolvedSdkConfig);
788
- // Append the per-side document origins plus the partner's builder setup and
789
- // the active detection models, all as flat wire entries.
790
- // configurationMetadataEntries always contributes the builder + model config objects, so
791
- // there is always at least one extra entry to append.
792
- const extraEntries = [
793
- ...this._documentImageOriginEntries(),
794
- ...this._captureTelemetryEntries(),
795
- ...configurationMetadataEntries(config),
796
- ];
797
- const metadata = baseMetadata.withAdditionalEntries(extraEntries);
798
-
799
- switch (jobType) {
800
- // enableEnhancedLiveness is a screen-level capture flag, not a
801
- // distinct job type — enrollment still hits /v3/registration.
802
- case JobType.smartSelfieEnrollment: {
803
- const selfie = this._requireSelfie();
804
- const userDetails = this._requireUserDetails(config);
805
- return {
806
- jobType: JobType.smartSelfieEnrollment,
807
- selfieImage: selfie.selfiePath,
808
- livenessImages: selfie.livenessPaths,
809
- userDetails,
810
- consent,
811
- metadata,
812
- enhanced: false,
813
- expectedLivenessImageCount: this._expectedLivenessImageCount(),
814
- };
815
- }
816
-
817
- case JobType.smartSelfieAuthentication: {
818
- const selfie = this._requireSelfie();
819
- const userDetails = this._requireUserDetails(config);
820
- const userId = this._requireUserId(config);
821
- return {
822
- jobType: JobType.smartSelfieAuthentication,
823
- selfieImage: selfie.selfiePath,
824
- livenessImages: selfie.livenessPaths,
825
- userDetails,
826
- userId,
827
- consent,
828
- metadata,
829
- enhanced: false,
830
- expectedLivenessImageCount: this._expectedLivenessImageCount(),
831
- };
832
- }
833
-
834
- case JobType.biometricKyc: {
835
- const selfie = this._requireSelfie();
836
- const params = config.biometricKYCParams;
837
- if (!params) {
838
- throw new MissingRequiredFieldException({
839
- fieldName: "biometricKYCParams",
840
- });
841
- }
842
- const userDetails = this._requireUserDetails(config);
843
- return {
844
- jobType: JobType.biometricKyc,
845
- selfieImage: selfie.selfiePath,
846
- livenessImages: selfie.livenessPaths,
847
- params,
848
- userDetails,
849
- consent,
850
- metadata,
851
- expectedLivenessImageCount: this._expectedLivenessImageCount(),
852
- };
853
- }
854
-
855
- case JobType.documentVerification: {
856
- const selfie = this._requireSelfie();
857
- const front = this._requireFrontDocument();
858
- const params = config.documentVerificationParams;
859
- if (!params) {
860
- throw new MissingRequiredFieldException({
861
- fieldName: "documentVerificationParams",
862
- });
863
- }
864
- const userDetails = this._requireUserDetails(config);
865
- return this._buildDocumentRequest(
866
- selfie,
867
- front,
868
- params,
869
- userDetails,
870
- consent,
871
- metadata,
872
- );
873
- }
874
-
875
- case JobType.enhancedDocumentVerification: {
876
- const selfie = this._requireSelfie();
877
- const front = this._requireFrontDocument();
878
- const params = config.enhancedDocumentVerificationParams;
879
- if (!params) {
880
- throw new MissingRequiredFieldException({
881
- fieldName: "enhancedDocumentVerificationParams",
882
- });
883
- }
884
- const userDetails = this._requireUserDetails(config);
885
- return this._buildEnhancedDocumentRequest(
886
- selfie,
887
- front,
888
- params,
889
- userDetails,
890
- consent,
891
- metadata,
892
- );
893
- }
894
-
895
- case JobType.enhancedKyc: {
896
- const params = config.enhancedKYCParams;
897
- if (!params) {
898
- throw new MissingRequiredFieldException({
899
- fieldName: "enhancedKYCParams",
900
- });
901
- }
902
- const userDetails = this._requireUserDetails(config);
903
- return {
904
- jobType: JobType.enhancedKyc,
905
- params,
906
- userDetails,
907
- consent,
908
- metadata,
909
- };
910
- }
911
-
912
- case JobType.bvn: {
913
- // Dedicated `bvn` request kind; the repository rejects it with
914
- // "BVN submission is not yet supported" until the endpoint lands.
915
- // Deliberately not silently mapped onto /v3/enhanced_kyc so
916
- // partners see the unsupported state explicitly.
917
- const params = config.enhancedKYCParams;
918
- if (!params) {
919
- throw new MissingRequiredFieldException({
920
- fieldName: "enhancedKYCParams",
921
- });
922
- }
923
- const userDetails = this._requireUserDetails(config);
924
- return {
925
- jobType: JobType.bvn,
926
- params,
927
- userDetails,
928
- consent,
929
- metadata,
930
- };
931
- }
932
-
933
- case JobType.unknown:
934
- default:
935
- throw new Error(
936
- "Job type not configured — call `b.network((n) => n.config((c) => { c.jobType = JobType.<...>; }))` " +
937
- "before mounting <UseSmileIDBuilder>.",
938
- );
939
- }
940
- }
941
-
942
- private _requireSelfie(): {
943
- readonly selfiePath: string;
944
- readonly livenessPaths: readonly string[];
945
- } {
946
- const { selfiePath, livenessPaths } = this._captured;
947
- if (!selfiePath) {
948
- throw new MissingRequiredFieldException({ fieldName: "selfieImage" });
949
- }
950
- return { selfiePath, livenessPaths };
951
- }
952
-
953
- private _requireUserDetails(config: FlowConfigurationSnapshot): UserDetails {
954
- const userDetails = config.userDetails;
955
- if (!userDetails) {
956
- throw new MissingRequiredFieldException({ fieldName: "userDetails" });
957
- }
958
- return userDetails;
959
- }
960
-
961
- /**
962
- * Resolve `b.userId` for smartSelfieAuthentication —
963
- * `/v3/authentication` requires the prior-enrollment `user_id` to
964
- * match the attempt. Throws `MissingRequiredFieldException` if blank.
965
- */
966
- private _requireUserId(config: FlowConfigurationSnapshot): string {
967
- const userId = config.userId?.trim();
968
- if (!userId) {
969
- throw new MissingRequiredFieldException({ fieldName: "userId" });
970
- }
971
- return userId;
972
- }
973
-
974
- private _requireFrontDocument(): string {
975
- const { frontDocumentPath } = this._captured;
976
- if (!frontDocumentPath) {
977
- throw new MissingRequiredFieldException({ fieldName: "frontDocument" });
978
- }
979
- return frontDocumentPath;
980
- }
981
-
982
- private _buildDocumentRequest(
983
- selfie: {
984
- readonly selfiePath: string;
985
- readonly livenessPaths: readonly string[];
986
- },
987
- frontDocument: string,
988
- params: DocumentVerificationParams,
989
- userDetails: UserDetails,
990
- consent: ConsentInformation,
991
- metadata: UseSmileIDMetadata,
992
- ): DocumentVerificationRequest {
993
- const { backDocumentPath } = this._captured;
994
- return {
995
- jobType: JobType.documentVerification,
996
- selfieImage: selfie.selfiePath,
997
- livenessImages: selfie.livenessPaths,
998
- frontDocument,
999
- ...(backDocumentPath ? { backDocument: backDocumentPath } : {}),
1000
- country: params.country,
1001
- // Optional — omit when unset so the server classifies the document.
1002
- ...(params.idType ? { idType: params.idType } : {}),
1003
- userDetails,
1004
- consent,
1005
- metadata,
1006
- expectedLivenessImageCount: this._expectedLivenessImageCount(),
1007
- };
1008
- }
1009
-
1010
- private _buildEnhancedDocumentRequest(
1011
- selfie: {
1012
- readonly selfiePath: string;
1013
- readonly livenessPaths: readonly string[];
1014
- },
1015
- frontDocument: string,
1016
- params: EnhancedDocumentVerificationParams,
1017
- userDetails: UserDetails,
1018
- consent: ConsentInformation,
1019
- metadata: UseSmileIDMetadata,
1020
- ): EnhancedDocumentVerificationRequest {
1021
- const { backDocumentPath } = this._captured;
1022
- return {
1023
- jobType: JobType.enhancedDocumentVerification,
1024
- selfieImage: selfie.selfiePath,
1025
- livenessImages: selfie.livenessPaths,
1026
- frontDocument,
1027
- ...(backDocumentPath ? { backDocument: backDocumentPath } : {}),
1028
- country: params.country,
1029
- idType: params.idType,
1030
- userDetails,
1031
- consent,
1032
- metadata,
1033
- expectedLivenessImageCount: this._expectedLivenessImageCount(),
1034
- };
1035
- }
1036
-
1037
- // --- analytics --------------------------------------------------------
1038
-
1039
- /** Emit terminal `flow_completed` (completed/failed only; not cancelled), then exit via `onExit`. */
1040
- private _finishFlow(reason: FlowExitReason): void {
1041
- if (reason.kind === "completed") {
1042
- const extras: Record<string, string> = {
1043
- [UseSmileIDAnalyticsParamKeys.result]: "success",
1044
- };
1045
- if (reason.job.jobId) {
1046
- extras[UseSmileIDAnalyticsParamKeys.jobId] = reason.job.jobId;
1047
- }
1048
- this._logEvent(UseSmileIDAnalyticsEventTypes.flowCompleted, extras);
1049
- } else if (reason.kind === "failed") {
1050
- this._logEvent(UseSmileIDAnalyticsEventTypes.flowCompleted, {
1051
- [UseSmileIDAnalyticsParamKeys.result]: "failure",
1052
- [UseSmileIDAnalyticsParamKeys.errorMessage]:
1053
- reason.error instanceof Error
1054
- ? reason.error.message
1055
- : String(reason.error),
1056
- });
1057
- }
1058
- this._onExit(reason);
1059
- }
1060
-
1061
- /** Forward a lifecycle event to `onAnalyticsEvent`, adding `session_id` + `timestamp`. No-op without a callback. */
1062
- private _logEvent(
1063
- type: UseSmileIDAnalyticsEventType,
1064
- extras: Readonly<Record<string, string>> = {},
1065
- ): void {
1066
- const onAnalyticsEvent = this._configuration.onAnalyticsEvent;
1067
- if (!onAnalyticsEvent) return;
1068
- onAnalyticsEvent({
1069
- type,
1070
- extras: {
1071
- ...extras,
1072
- [UseSmileIDAnalyticsParamKeys.sessionId]: this._sessionId,
1073
- [UseSmileIDAnalyticsParamKeys.timestamp]: String(Date.now()),
1074
- },
1075
- });
1076
- }
1077
-
1078
- private _jobTypeName(): string {
1079
- return String(
1080
- this._configuration.network?.config?.jobType ?? JobType.unknown,
1081
- );
1082
- }
1083
-
1084
- private _screenAnalyticsName(screen: ScreenSpec): string {
1085
- const names: Record<ScreenSpec["kind"], string> = {
1086
- consent: UseSmileIDAnalyticsScreenNames.consent,
1087
- instructions: UseSmileIDAnalyticsScreenNames.instructions,
1088
- capture: UseSmileIDAnalyticsScreenNames.capture,
1089
- preview: UseSmileIDAnalyticsScreenNames.preview,
1090
- processing: UseSmileIDAnalyticsScreenNames.processing,
1091
- };
1092
- return names[screen.kind];
1093
- }
1094
-
1095
- // --- subscription -----------------------------------------------------
1096
-
1097
- /** Subscribe to state changes; returns an unsubscribe (safe after `dispose()`). */
1098
- subscribe(listener: Listener): () => void {
1099
- this._listeners.add(listener);
1100
- return () => {
1101
- this._listeners.delete(listener);
1102
- };
1103
- }
1104
-
1105
- /** Tear down — drop listeners, make methods no-ops (orchestrator's useEffect cleanup). */
1106
- dispose(): void {
1107
- this._disposed = true;
1108
- this._listeners.clear();
1109
- }
1110
-
1111
- /**
1112
- * Expected liveness image count: ESS uses its fixed count (head-turn
1113
- * flow self-manages); else the token's livenessImageCount override;
1114
- * else the ScanPerformanceProfile default (`numSamples - 1`).
1115
- */
1116
- private _expectedLivenessImageCount(): number {
1117
- const isEnhancedLiveness = this.enhancedLivenessEnabled;
1118
- if (isEnhancedLiveness) {
1119
- return EnhancedSmartSelfieConfig.EXPECTED_LIVENESS_IMAGE_COUNT;
1120
- }
1121
- const override = numSamplesOverride(this.resolvedSdkConfig);
1122
- if (override !== undefined) {
1123
- // numSamplesOverride = livenessImageCount + 1; subtract the selfie.
1124
- return override - 1;
1125
- }
1126
- // Profile numSamples (default Balanced = 8) minus the reference selfie.
1127
- const profileNumSamples =
1128
- this._configuration.ml?.analyzers.selfieConfig?.numSamples ??
1129
- ScanPerformanceProfile.Balanced.numSamples;
1130
- return profileNumSamples - 1;
1131
- }
1132
-
1133
- /**
1134
- * Decode the partner JWT into its claims (`sdk_config`, `partner_id`). `undefined` for offline
1135
- * mode, no token, or an unparseable token — SDK defaults apply in those cases.
1136
- */
1137
- private static _decodeToken(
1138
- configuration: FlowConfigurationSnapshot,
1139
- ): DecodedToken | undefined {
1140
- if (configuration.config?.allowOfflineMode) return undefined;
1141
- const token = configuration.network?.config?.token;
1142
- if (!token || token.length === 0) return undefined;
1143
- return decodeSmileIDToken(token);
1144
- }
1145
-
1146
- private _notify(): void {
1147
- for (const listener of this._listeners) {
1148
- try {
1149
- listener();
1150
- } catch {
1151
- // Swallow so one bad listener can't poison the dispatch chain;
1152
- // the orchestrator-level boundary handles crash reporting.
1153
- }
1154
- }
1155
- }
1156
- }