@smileid/usesmileid 12.0.2 → 12.1.1

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 (1270) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +65 -39
  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 +1 -2
  6. package/dist/camera/camera_defaults.js +1 -26
  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 +0 -1
  44. package/dist/core/exception/flow_exceptions.js +1 -38
  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 +0 -1
  72. package/dist/core/exception/missing_job_type_exception.js +1 -15
  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 +0 -1
  142. package/dist/data/api/smile_id_api.js +1 -374
  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 +4 -6
  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 +0 -1
  180. package/dist/data/model/token_payload.js +1 -132
  181. package/dist/data/model/user_details_payload.d.ts +0 -1
  182. package/dist/data/model/user_details_payload.js +1 -53
  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 +0 -1
  204. package/dist/data/util/use_smile_id_token_decoder.js +1 -148
  205. package/dist/index.d.ts +3 -6
  206. package/dist/index.js +1 -142
  207. package/dist/l10n/strings_en.d.ts +18 -14
  208. package/dist/l10n/strings_en.js +2 -145
  209. package/dist/l10n/use_smile_id_localizations.d.ts +14 -10
  210. package/dist/l10n/use_smile_id_localizations.js +1 -546
  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 -69
  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 +0 -21
  340. package/dist/presentation/flow/dsl/builder/screens_builder.js +1 -215
  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 -356
  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 +2 -1
  352. package/dist/presentation/flow/flow_navigation_manager.js +1 -935
  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 -79
  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 -297
  385. package/dist/presentation/flow/validation/flow_validator.d.ts +2 -13
  386. package/dist/presentation/flow/validation/flow_validator.js +1 -300
  387. package/dist/presentation/flow/validation/job_type_validator.d.ts +3 -1
  388. package/dist/presentation/flow/validation/job_type_validator.js +1 -459
  389. package/dist/presentation/flow/validation/user_details_validator.d.ts +0 -1
  390. package/dist/presentation/flow/validation/user_details_validator.js +1 -40
  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 -135
  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 -640
  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/model/token_payload.d.ts.map +0 -1
  637. package/dist/data/model/token_payload.js.map +0 -1
  638. package/dist/data/model/user_details_payload.d.ts.map +0 -1
  639. package/dist/data/model/user_details_payload.js.map +0 -1
  640. package/dist/data/repository/use_smile_id_repository.d.ts.map +0 -1
  641. package/dist/data/repository/use_smile_id_repository.js.map +0 -1
  642. package/dist/data/repository/use_smile_id_repository_impl.d.ts.map +0 -1
  643. package/dist/data/repository/use_smile_id_repository_impl.js.map +0 -1
  644. package/dist/data/security/request_canonicalizer.d.ts.map +0 -1
  645. package/dist/data/security/request_canonicalizer.js.map +0 -1
  646. package/dist/data/security/request_timestamp.d.ts.map +0 -1
  647. package/dist/data/security/request_timestamp.js.map +0 -1
  648. package/dist/data/security/security_policy.d.ts.map +0 -1
  649. package/dist/data/security/security_policy.js.map +0 -1
  650. package/dist/data/security/signing_crypto.d.ts.map +0 -1
  651. package/dist/data/security/signing_crypto.js.map +0 -1
  652. package/dist/data/security/smile_id_crypto_error.d.ts.map +0 -1
  653. package/dist/data/security/smile_id_crypto_error.js.map +0 -1
  654. package/dist/data/security/smile_id_crypto_manager.d.ts.map +0 -1
  655. package/dist/data/security/smile_id_crypto_manager.js.map +0 -1
  656. package/dist/data/smile_id_urls.d.ts.map +0 -1
  657. package/dist/data/smile_id_urls.js.map +0 -1
  658. package/dist/data/util/retry_util.d.ts.map +0 -1
  659. package/dist/data/util/retry_util.js.map +0 -1
  660. package/dist/data/util/use_smile_id_token_decoder.d.ts.map +0 -1
  661. package/dist/data/util/use_smile_id_token_decoder.js.map +0 -1
  662. package/dist/index.d.ts.map +0 -1
  663. package/dist/index.js.map +0 -1
  664. package/dist/l10n/strings_en.d.ts.map +0 -1
  665. package/dist/l10n/strings_en.js.map +0 -1
  666. package/dist/l10n/use_smile_id_localizations.d.ts.map +0 -1
  667. package/dist/l10n/use_smile_id_localizations.js.map +0 -1
  668. package/dist/l10n/use_smile_id_localizations_provider.d.ts.map +0 -1
  669. package/dist/l10n/use_smile_id_localizations_provider.js.map +0 -1
  670. package/dist/metadata/builder_configuration.d.ts.map +0 -1
  671. package/dist/metadata/builder_configuration.js.map +0 -1
  672. package/dist/metadata/captured_image_properties.d.ts.map +0 -1
  673. package/dist/metadata/captured_image_properties.js.map +0 -1
  674. package/dist/metadata/device_orientation_collector.d.ts.map +0 -1
  675. package/dist/metadata/device_orientation_collector.js.map +0 -1
  676. package/dist/metadata/document_image_origin.d.ts.map +0 -1
  677. package/dist/metadata/document_image_origin.js.map +0 -1
  678. package/dist/metadata/geolocation.d.ts.map +0 -1
  679. package/dist/metadata/geolocation.js.map +0 -1
  680. package/dist/metadata/metadata_configuration_mappers.d.ts.map +0 -1
  681. package/dist/metadata/metadata_configuration_mappers.js.map +0 -1
  682. package/dist/metadata/model_configuration.d.ts.map +0 -1
  683. package/dist/metadata/model_configuration.js.map +0 -1
  684. package/dist/metadata/optional_native_modules.d.ts.map +0 -1
  685. package/dist/metadata/optional_native_modules.js.map +0 -1
  686. package/dist/metadata/use_smile_id_metadata.d.ts.map +0 -1
  687. package/dist/metadata/use_smile_id_metadata.js.map +0 -1
  688. package/dist/metadata/use_smile_id_metadata_factory.d.ts.map +0 -1
  689. package/dist/metadata/use_smile_id_metadata_factory.js.map +0 -1
  690. package/dist/presentation/assets/svg/document_shimmer_strings.d.ts.map +0 -1
  691. package/dist/presentation/assets/svg/document_shimmer_strings.js.map +0 -1
  692. package/dist/presentation/assets/svg/instruction_svg_strings.d.ts.map +0 -1
  693. package/dist/presentation/assets/svg/instruction_svg_strings.js.map +0 -1
  694. package/dist/presentation/assets/svg/svg_strings.d.ts.map +0 -1
  695. package/dist/presentation/assets/svg/svg_strings.js.map +0 -1
  696. package/dist/presentation/components/face_oval_defaults.d.ts.map +0 -1
  697. package/dist/presentation/components/face_oval_defaults.js.map +0 -1
  698. package/dist/presentation/components/helpers/animated_lottie_view.d.ts.map +0 -1
  699. package/dist/presentation/components/helpers/animated_lottie_view.js.map +0 -1
  700. package/dist/presentation/components/helpers/capture_instruction_animation_spec.d.ts.map +0 -1
  701. package/dist/presentation/components/helpers/capture_instruction_animation_spec.js.map +0 -1
  702. package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.d.ts.map +0 -1
  703. package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.js.map +0 -1
  704. package/dist/presentation/components/helpers/scaled_oval_geometry.d.ts.map +0 -1
  705. package/dist/presentation/components/helpers/scaled_oval_geometry.js.map +0 -1
  706. package/dist/presentation/components/icons/index.d.ts.map +0 -1
  707. package/dist/presentation/components/icons/index.js.map +0 -1
  708. package/dist/presentation/components/status_indicator_state.d.ts.map +0 -1
  709. package/dist/presentation/components/status_indicator_state.js.map +0 -1
  710. package/dist/presentation/components/use_smile_id_attribution.d.ts.map +0 -1
  711. package/dist/presentation/components/use_smile_id_attribution.js.map +0 -1
  712. package/dist/presentation/components/use_smile_id_back_button.d.ts.map +0 -1
  713. package/dist/presentation/components/use_smile_id_back_button.js.map +0 -1
  714. package/dist/presentation/components/use_smile_id_button.d.ts.map +0 -1
  715. package/dist/presentation/components/use_smile_id_button.js.map +0 -1
  716. package/dist/presentation/components/use_smile_id_capture_content.d.ts.map +0 -1
  717. package/dist/presentation/components/use_smile_id_capture_content.js.map +0 -1
  718. package/dist/presentation/components/use_smile_id_capture_instruction_animation.d.ts.map +0 -1
  719. package/dist/presentation/components/use_smile_id_capture_instruction_animation.js.map +0 -1
  720. package/dist/presentation/components/use_smile_id_capture_spinner.d.ts.map +0 -1
  721. package/dist/presentation/components/use_smile_id_capture_spinner.js.map +0 -1
  722. package/dist/presentation/components/use_smile_id_captured_document_image.d.ts.map +0 -1
  723. package/dist/presentation/components/use_smile_id_captured_document_image.js.map +0 -1
  724. package/dist/presentation/components/use_smile_id_captured_image_oval.d.ts.map +0 -1
  725. package/dist/presentation/components/use_smile_id_captured_image_oval.js.map +0 -1
  726. package/dist/presentation/components/use_smile_id_card_surface.d.ts.map +0 -1
  727. package/dist/presentation/components/use_smile_id_card_surface.js.map +0 -1
  728. package/dist/presentation/components/use_smile_id_confirmation_buttons.d.ts.map +0 -1
  729. package/dist/presentation/components/use_smile_id_confirmation_buttons.js.map +0 -1
  730. package/dist/presentation/components/use_smile_id_consent_row.d.ts.map +0 -1
  731. package/dist/presentation/components/use_smile_id_consent_row.js.map +0 -1
  732. package/dist/presentation/components/use_smile_id_content_card.d.ts.map +0 -1
  733. package/dist/presentation/components/use_smile_id_content_card.js.map +0 -1
  734. package/dist/presentation/components/use_smile_id_document_capture_controls.d.ts.map +0 -1
  735. package/dist/presentation/components/use_smile_id_document_capture_controls.js.map +0 -1
  736. package/dist/presentation/components/use_smile_id_document_overlay.d.ts.map +0 -1
  737. package/dist/presentation/components/use_smile_id_document_overlay.js.map +0 -1
  738. package/dist/presentation/components/use_smile_id_document_shimmer.d.ts.map +0 -1
  739. package/dist/presentation/components/use_smile_id_document_shimmer.js.map +0 -1
  740. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.d.ts.map +0 -1
  741. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.js.map +0 -1
  742. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_direction_animation.d.ts.map +0 -1
  743. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_direction_animation.js.map +0 -1
  744. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_full_animation.d.ts.map +0 -1
  745. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_full_animation.js.map +0 -1
  746. package/dist/presentation/components/use_smile_id_expandable_icon.d.ts.map +0 -1
  747. package/dist/presentation/components/use_smile_id_expandable_icon.js.map +0 -1
  748. package/dist/presentation/components/use_smile_id_face_oval_image.d.ts.map +0 -1
  749. package/dist/presentation/components/use_smile_id_face_oval_image.js.map +0 -1
  750. package/dist/presentation/components/use_smile_id_face_overlay.d.ts.map +0 -1
  751. package/dist/presentation/components/use_smile_id_face_overlay.js.map +0 -1
  752. package/dist/presentation/components/use_smile_id_failed_content.d.ts.map +0 -1
  753. package/dist/presentation/components/use_smile_id_failed_content.js.map +0 -1
  754. package/dist/presentation/components/use_smile_id_guideline_thumbnail.d.ts.map +0 -1
  755. package/dist/presentation/components/use_smile_id_guideline_thumbnail.js.map +0 -1
  756. package/dist/presentation/components/use_smile_id_instructions_hero.d.ts.map +0 -1
  757. package/dist/presentation/components/use_smile_id_instructions_hero.js.map +0 -1
  758. package/dist/presentation/components/use_smile_id_learn_more_content.d.ts.map +0 -1
  759. package/dist/presentation/components/use_smile_id_learn_more_content.js.map +0 -1
  760. package/dist/presentation/components/use_smile_id_loading_content.d.ts.map +0 -1
  761. package/dist/presentation/components/use_smile_id_loading_content.js.map +0 -1
  762. package/dist/presentation/components/use_smile_id_loading_indicator.d.ts.map +0 -1
  763. package/dist/presentation/components/use_smile_id_loading_indicator.js.map +0 -1
  764. package/dist/presentation/components/use_smile_id_oval_border_palette.d.ts.map +0 -1
  765. package/dist/presentation/components/use_smile_id_oval_border_palette.js.map +0 -1
  766. package/dist/presentation/components/use_smile_id_partner_icon.d.ts.map +0 -1
  767. package/dist/presentation/components/use_smile_id_partner_icon.js.map +0 -1
  768. package/dist/presentation/components/use_smile_id_processing_center_indicator.d.ts.map +0 -1
  769. package/dist/presentation/components/use_smile_id_processing_center_indicator.js.map +0 -1
  770. package/dist/presentation/components/use_smile_id_rounded_checkbox.d.ts.map +0 -1
  771. package/dist/presentation/components/use_smile_id_rounded_checkbox.js.map +0 -1
  772. package/dist/presentation/components/use_smile_id_status_indicator.d.ts.map +0 -1
  773. package/dist/presentation/components/use_smile_id_status_indicator.js.map +0 -1
  774. package/dist/presentation/components/use_smile_id_success_content.d.ts.map +0 -1
  775. package/dist/presentation/components/use_smile_id_success_content.js.map +0 -1
  776. package/dist/presentation/flow/analytics/use_smile_id_analytics_event.d.ts.map +0 -1
  777. package/dist/presentation/flow/analytics/use_smile_id_analytics_event.js.map +0 -1
  778. package/dist/presentation/flow/config/flow_configuration.d.ts.map +0 -1
  779. package/dist/presentation/flow/config/flow_configuration.js.map +0 -1
  780. package/dist/presentation/flow/dsl/builder/config_builder.d.ts.map +0 -1
  781. package/dist/presentation/flow/dsl/builder/config_builder.js.map +0 -1
  782. package/dist/presentation/flow/dsl/builder/ml_builder.d.ts.map +0 -1
  783. package/dist/presentation/flow/dsl/builder/ml_builder.js.map +0 -1
  784. package/dist/presentation/flow/dsl/builder/screens_builder.d.ts.map +0 -1
  785. package/dist/presentation/flow/dsl/builder/screens_builder.js.map +0 -1
  786. package/dist/presentation/flow/dsl/builder/theme_builder.d.ts.map +0 -1
  787. package/dist/presentation/flow/dsl/builder/theme_builder.js.map +0 -1
  788. package/dist/presentation/flow/dsl/flow_build_result.d.ts.map +0 -1
  789. package/dist/presentation/flow/dsl/flow_build_result.js.map +0 -1
  790. package/dist/presentation/flow/dsl/use_smile_id_builder.d.ts.map +0 -1
  791. package/dist/presentation/flow/dsl/use_smile_id_builder.js.map +0 -1
  792. package/dist/presentation/flow/dsl/use_smile_id_flow_builder.d.ts.map +0 -1
  793. package/dist/presentation/flow/dsl/use_smile_id_flow_builder.js.map +0 -1
  794. package/dist/presentation/flow/flow_navigation_context.d.ts.map +0 -1
  795. package/dist/presentation/flow/flow_navigation_context.js.map +0 -1
  796. package/dist/presentation/flow/flow_navigation_manager.d.ts.map +0 -1
  797. package/dist/presentation/flow/flow_navigation_manager.js.map +0 -1
  798. package/dist/presentation/flow/graph/screen_renderer.d.ts.map +0 -1
  799. package/dist/presentation/flow/graph/screen_renderer.js.map +0 -1
  800. package/dist/presentation/flow/job_submission_state.d.ts.map +0 -1
  801. package/dist/presentation/flow/job_submission_state.js.map +0 -1
  802. package/dist/presentation/flow/model/instruction_guideline.d.ts.map +0 -1
  803. package/dist/presentation/flow/model/instruction_guideline.js.map +0 -1
  804. package/dist/presentation/flow/model/instructions_defaults.d.ts.map +0 -1
  805. package/dist/presentation/flow/model/instructions_defaults.js.map +0 -1
  806. package/dist/presentation/flow/screen/helpers/face_session_config.d.ts.map +0 -1
  807. package/dist/presentation/flow/screen/helpers/face_session_config.js.map +0 -1
  808. package/dist/presentation/flow/screen/orchestrated_capture_screen.d.ts.map +0 -1
  809. package/dist/presentation/flow/screen/orchestrated_capture_screen.js.map +0 -1
  810. package/dist/presentation/flow/screen/orchestrated_consent_screen.d.ts.map +0 -1
  811. package/dist/presentation/flow/screen/orchestrated_consent_screen.js.map +0 -1
  812. package/dist/presentation/flow/screen/orchestrated_instructions_screen.d.ts.map +0 -1
  813. package/dist/presentation/flow/screen/orchestrated_instructions_screen.js.map +0 -1
  814. package/dist/presentation/flow/screen/orchestrated_preview_screen.d.ts.map +0 -1
  815. package/dist/presentation/flow/screen/orchestrated_preview_screen.js.map +0 -1
  816. package/dist/presentation/flow/screen/orchestrated_processing_screen.d.ts.map +0 -1
  817. package/dist/presentation/flow/screen/orchestrated_processing_screen.js.map +0 -1
  818. package/dist/presentation/flow/screen/use_smile_id_orchestrated_screen_host.d.ts.map +0 -1
  819. package/dist/presentation/flow/screen/use_smile_id_orchestrated_screen_host.js.map +0 -1
  820. package/dist/presentation/flow/screen/validation_error_screen.d.ts.map +0 -1
  821. package/dist/presentation/flow/screen/validation_error_screen.js.map +0 -1
  822. package/dist/presentation/flow/use_smile_id_flow.d.ts.map +0 -1
  823. package/dist/presentation/flow/use_smile_id_flow.js.map +0 -1
  824. package/dist/presentation/flow/validation/flow_validator.d.ts.map +0 -1
  825. package/dist/presentation/flow/validation/flow_validator.js.map +0 -1
  826. package/dist/presentation/flow/validation/job_type_validator.d.ts.map +0 -1
  827. package/dist/presentation/flow/validation/job_type_validator.js.map +0 -1
  828. package/dist/presentation/flow/validation/user_details_validator.d.ts.map +0 -1
  829. package/dist/presentation/flow/validation/user_details_validator.js.map +0 -1
  830. package/dist/presentation/flow/validation/validation_state.d.ts.map +0 -1
  831. package/dist/presentation/flow/validation/validation_state.js.map +0 -1
  832. package/dist/presentation/screen/helpers/capture_screen_helpers.d.ts.map +0 -1
  833. package/dist/presentation/screen/helpers/capture_screen_helpers.js.map +0 -1
  834. package/dist/presentation/screen/helpers/capture_ui_state.d.ts.map +0 -1
  835. package/dist/presentation/screen/helpers/capture_ui_state.js.map +0 -1
  836. package/dist/presentation/screen/helpers/consent_screen_helpers.d.ts.map +0 -1
  837. package/dist/presentation/screen/helpers/consent_screen_helpers.js.map +0 -1
  838. package/dist/presentation/screen/helpers/ess_turn_haptics.d.ts.map +0 -1
  839. package/dist/presentation/screen/helpers/ess_turn_haptics.js.map +0 -1
  840. package/dist/presentation/screen/helpers/feedback_debouncer.d.ts.map +0 -1
  841. package/dist/presentation/screen/helpers/feedback_debouncer.js.map +0 -1
  842. package/dist/presentation/screen/helpers/instructions_screen_helpers.d.ts.map +0 -1
  843. package/dist/presentation/screen/helpers/instructions_screen_helpers.js.map +0 -1
  844. package/dist/presentation/screen/helpers/preview_screen_helpers.d.ts.map +0 -1
  845. package/dist/presentation/screen/helpers/preview_screen_helpers.js.map +0 -1
  846. package/dist/presentation/screen/helpers/processing_screen_helpers.d.ts.map +0 -1
  847. package/dist/presentation/screen/helpers/processing_screen_helpers.js.map +0 -1
  848. package/dist/presentation/screen/helpers/scan_state_to_overlay_state.d.ts.map +0 -1
  849. package/dist/presentation/screen/helpers/scan_state_to_overlay_state.js.map +0 -1
  850. package/dist/presentation/screen/helpers/use_capture_orientation_lock.d.ts.map +0 -1
  851. package/dist/presentation/screen/helpers/use_capture_orientation_lock.js.map +0 -1
  852. package/dist/presentation/screen/helpers/use_debounced_feedback_key.d.ts.map +0 -1
  853. package/dist/presentation/screen/helpers/use_debounced_feedback_key.js.map +0 -1
  854. package/dist/presentation/screen/use_smile_id_capture_screen.d.ts.map +0 -1
  855. package/dist/presentation/screen/use_smile_id_capture_screen.js.map +0 -1
  856. package/dist/presentation/screen/use_smile_id_consent_screen.d.ts.map +0 -1
  857. package/dist/presentation/screen/use_smile_id_consent_screen.js.map +0 -1
  858. package/dist/presentation/screen/use_smile_id_document_back_instructions.d.ts.map +0 -1
  859. package/dist/presentation/screen/use_smile_id_document_back_instructions.js.map +0 -1
  860. package/dist/presentation/screen/use_smile_id_document_preview_screen.d.ts.map +0 -1
  861. package/dist/presentation/screen/use_smile_id_document_preview_screen.js.map +0 -1
  862. package/dist/presentation/screen/use_smile_id_instructions_screen.d.ts.map +0 -1
  863. package/dist/presentation/screen/use_smile_id_instructions_screen.js.map +0 -1
  864. package/dist/presentation/screen/use_smile_id_permission_screen.d.ts.map +0 -1
  865. package/dist/presentation/screen/use_smile_id_permission_screen.js.map +0 -1
  866. package/dist/presentation/screen/use_smile_id_preview_screen.d.ts.map +0 -1
  867. package/dist/presentation/screen/use_smile_id_preview_screen.js.map +0 -1
  868. package/dist/presentation/screen/use_smile_id_processing_screen.d.ts.map +0 -1
  869. package/dist/presentation/screen/use_smile_id_processing_screen.js.map +0 -1
  870. package/dist/presentation/state/processing_state.d.ts.map +0 -1
  871. package/dist/presentation/state/processing_state.js.map +0 -1
  872. package/dist/presentation/state/use_smile_id_overlay_state.d.ts.map +0 -1
  873. package/dist/presentation/state/use_smile_id_overlay_state.js.map +0 -1
  874. package/dist/presentation/theme/theme.d.ts.map +0 -1
  875. package/dist/presentation/theme/theme.js.map +0 -1
  876. package/dist/presentation/theme/theme_context.d.ts.map +0 -1
  877. package/dist/presentation/theme/theme_context.js.map +0 -1
  878. package/dist/presentation/theme/use_smile_id_motion.d.ts.map +0 -1
  879. package/dist/presentation/theme/use_smile_id_motion.js.map +0 -1
  880. package/dist/presentation/theme/use_use_smile_id_fonts.d.ts.map +0 -1
  881. package/dist/presentation/theme/use_use_smile_id_fonts.js.map +0 -1
  882. package/dist/presentation/utils/force_max_brightness.d.ts.map +0 -1
  883. package/dist/presentation/utils/force_max_brightness.js.map +0 -1
  884. package/dist/presentation/utils/locale_utils.d.ts.map +0 -1
  885. package/dist/presentation/utils/locale_utils.js.map +0 -1
  886. package/dist/presentation/utils/use_reduced_motion.d.ts.map +0 -1
  887. package/dist/presentation/utils/use_reduced_motion.js.map +0 -1
  888. package/dist/testing/fake_face_analyzer.d.ts.map +0 -1
  889. package/dist/testing/fake_face_analyzer.js.map +0 -1
  890. package/dist/testing/index.d.ts.map +0 -1
  891. package/dist/testing/index.js.map +0 -1
  892. package/dist/testing/scenario_expectations.d.ts.map +0 -1
  893. package/dist/testing/scenario_expectations.js.map +0 -1
  894. package/dist/testing/scenario_loader.d.ts.map +0 -1
  895. package/dist/testing/scenario_loader.js.map +0 -1
  896. package/dist/testing/scripted_scan_results.d.ts.map +0 -1
  897. package/dist/testing/scripted_scan_results.js.map +0 -1
  898. package/src/__tests__/dsl.test.ts +0 -1165
  899. package/src/__tests__/enum_parity.test.ts +0 -84
  900. package/src/__tests__/react_native_mock.tsx +0 -240
  901. package/src/__tests__/setup_react_native.ts +0 -368
  902. package/src/__tests__/snapshots/__snapshots__/screens_structural.test.tsx.snap +0 -5267
  903. package/src/__tests__/snapshots/screens_structural.test.tsx +0 -230
  904. package/src/__tests__/theme.test.ts +0 -156
  905. package/src/camera/__tests__/camera_defaults.test.ts +0 -28
  906. package/src/camera/__tests__/camera_lens.test.ts +0 -18
  907. package/src/camera/__tests__/camera_permissions.test.ts +0 -72
  908. package/src/camera/__tests__/camera_system_focus.test.ts +0 -173
  909. package/src/camera/__tests__/document_resize_target.test.ts +0 -44
  910. package/src/camera/__tests__/focus_state.test.ts +0 -48
  911. package/src/camera/__tests__/orientation_degrees.test.ts +0 -21
  912. package/src/camera/__tests__/use_smile_id_camera_preview.test.tsx +0 -461
  913. package/src/camera/__tests__/use_smile_id_camera_system.test.ts +0 -103
  914. package/src/camera/__tests__/use_smile_id_frame_stream.test.ts +0 -227
  915. package/src/camera/__tests__/use_smile_id_frame_stream_hook.test.tsx +0 -229
  916. package/src/camera/camera_configuration.ts +0 -32
  917. package/src/camera/camera_defaults.ts +0 -28
  918. package/src/camera/camera_lens.ts +0 -13
  919. package/src/camera/camera_permissions.ts +0 -36
  920. package/src/camera/camera_preview_image.ts +0 -19
  921. package/src/camera/document_image_pipeline.ts +0 -101
  922. package/src/camera/document_resize_target.ts +0 -22
  923. package/src/camera/focus_state.ts +0 -26
  924. package/src/camera/orientation_degrees.ts +0 -21
  925. package/src/camera/use_smile_id_camera_preview.tsx +0 -256
  926. package/src/camera/use_smile_id_camera_system.ts +0 -236
  927. package/src/camera/use_smile_id_frame_stream.ts +0 -189
  928. package/src/core/exception/__tests__/builder_validation_exceptions.test.ts +0 -81
  929. package/src/core/exception/__tests__/network_exception_mapper.test.ts +0 -179
  930. package/src/core/exception/agent_mode_with_enhanced_liveness_exception.ts +0 -20
  931. package/src/core/exception/builder_validation_exception.ts +0 -40
  932. package/src/core/exception/capture_validation_exceptions.ts +0 -9
  933. package/src/core/exception/consent_validation_exceptions.ts +0 -7
  934. package/src/core/exception/duplicate_screen_type_exception.ts +0 -22
  935. package/src/core/exception/empty_screens_block_exception.ts +0 -19
  936. package/src/core/exception/flow_exceptions.test.ts +0 -49
  937. package/src/core/exception/flow_exceptions.ts +0 -43
  938. package/src/core/exception/index.ts +0 -74
  939. package/src/core/exception/invalid_consent_config_exception.ts +0 -20
  940. package/src/core/exception/invalid_consent_information_exception.ts +0 -21
  941. package/src/core/exception/invalid_document_capture_config_exception.ts +0 -22
  942. package/src/core/exception/invalid_field_value_exception.ts +0 -21
  943. package/src/core/exception/invalid_job_type_screen_config_exception.ts +0 -70
  944. package/src/core/exception/invalid_missing_capture_type_exception.ts +0 -19
  945. package/src/core/exception/invalid_screen_order_exception.ts +0 -28
  946. package/src/core/exception/invalid_selfie_capture_config_exception.ts +0 -22
  947. package/src/core/exception/issue_severity.ts +0 -14
  948. package/src/core/exception/job_validation_exceptions.ts +0 -11
  949. package/src/core/exception/liveness_frame_count_exception.ts +0 -21
  950. package/src/core/exception/missing_capture_for_preview_exception.ts +0 -24
  951. package/src/core/exception/missing_job_type_exception.ts +0 -18
  952. package/src/core/exception/missing_ml_configuration_block_exception.ts +0 -21
  953. package/src/core/exception/missing_network_configuration_block_exception.ts +0 -22
  954. package/src/core/exception/missing_partner_config_exception.ts +0 -38
  955. package/src/core/exception/missing_required_field_exception.ts +0 -19
  956. package/src/core/exception/screen_config_validation_exceptions.ts +0 -10
  957. package/src/core/exception/use_smile_id_attestation_exception.ts +0 -11
  958. package/src/core/exception/use_smile_id_builder_exception.ts +0 -18
  959. package/src/core/exception/use_smile_id_camera_exception.ts +0 -12
  960. package/src/core/exception/use_smile_id_error_code.ts +0 -84
  961. package/src/core/exception/use_smile_id_exception.ts +0 -52
  962. package/src/core/exception/use_smile_id_general_exception.ts +0 -12
  963. package/src/core/exception/use_smile_id_network_exception.ts +0 -279
  964. package/src/core/exception/use_smile_id_validation_exception.ts +0 -12
  965. package/src/core/models/__tests__/document_capture_mode.test.ts +0 -43
  966. package/src/core/models/__tests__/document_type.test.ts +0 -66
  967. package/src/core/models/__tests__/flow_models.test.ts +0 -26
  968. package/src/core/models/__tests__/job_type.test.ts +0 -48
  969. package/src/core/models/config.ts +0 -58
  970. package/src/core/models/document_capture_mode.ts +0 -73
  971. package/src/core/models/document_type.ts +0 -79
  972. package/src/core/models/flow_step.ts +0 -17
  973. package/src/core/models/global_privacy_control.ts +0 -45
  974. package/src/core/models/head_turn_direction.ts +0 -15
  975. package/src/core/models/job_type.ts +0 -53
  976. package/src/core/models/ml_config.ts +0 -47
  977. package/src/core/models/network_config.ts +0 -138
  978. package/src/core/models/params.ts +0 -98
  979. package/src/core/models/result.test.ts +0 -20
  980. package/src/core/models/result.ts +0 -33
  981. package/src/data/api/__tests__/smile_id_api.test.ts +0 -1471
  982. package/src/data/api/auth/token_holder.ts +0 -72
  983. package/src/data/api/interceptors/__tests__/credential_header_redaction.test.ts +0 -144
  984. package/src/data/api/interceptors/__tests__/gzip_interceptor.test.ts +0 -83
  985. package/src/data/api/interceptors/__tests__/logging_interceptor.test.ts +0 -252
  986. package/src/data/api/interceptors/__tests__/sensitive_headers.test.ts +0 -29
  987. package/src/data/api/interceptors/__tests__/smile_integrity_interceptor.test.ts +0 -192
  988. package/src/data/api/interceptors/__tests__/smile_request_mac_interceptor.test.ts +0 -156
  989. package/src/data/api/interceptors/__tests__/token_refresh_interceptor.test.ts +0 -173
  990. package/src/data/api/interceptors/gzip_interceptor.ts +0 -31
  991. package/src/data/api/interceptors/logging_interceptor.ts +0 -155
  992. package/src/data/api/interceptors/sensitive_headers.ts +0 -46
  993. package/src/data/api/interceptors/smile_auth_interceptor.ts +0 -73
  994. package/src/data/api/interceptors/smile_integrity_interceptor.ts +0 -99
  995. package/src/data/api/interceptors/smile_request_mac_interceptor.ts +0 -106
  996. package/src/data/api/interceptors/token_refresh_interceptor.ts +0 -122
  997. package/src/data/api/smile_id_api.ts +0 -475
  998. package/src/data/compression/__tests__/payload_compressor.test.ts +0 -200
  999. package/src/data/compression/__tests__/payload_compressor_real_jpeg.test.ts +0 -226
  1000. package/src/data/compression/compressible_asset.ts +0 -62
  1001. package/src/data/compression/payload_compression_config.ts +0 -53
  1002. package/src/data/compression/payload_compression_runner.ts +0 -102
  1003. package/src/data/compression/payload_compressor.ts +0 -164
  1004. package/src/data/compression/uri_compressible_asset.ts +0 -85
  1005. package/src/data/dsl/__tests__/use_smile_id_network_builder.test.ts +0 -157
  1006. package/src/data/dsl/builder/__tests__/config_builders.test.ts +0 -62
  1007. package/src/data/dsl/builder/__tests__/interceptor_config_builder.test.ts +0 -173
  1008. package/src/data/dsl/builder/cache_config_builder.ts +0 -28
  1009. package/src/data/dsl/builder/config_builder.ts +0 -156
  1010. package/src/data/dsl/builder/interceptor_config_builder.ts +0 -83
  1011. package/src/data/dsl/builder/retry_config_builder.ts +0 -57
  1012. package/src/data/dsl/builder/timeout_config_builder.ts +0 -31
  1013. package/src/data/dsl/use_smile_id_network_builder.ts +0 -86
  1014. package/src/data/factory/__tests__/networking_factory_order.test.ts +0 -201
  1015. package/src/data/factory/__tests__/retry_gzip_mac_composition.test.ts +0 -163
  1016. package/src/data/factory/__tests__/signed_job_submission_headers.test.ts +0 -110
  1017. package/src/data/factory/networking_factory.ts +0 -201
  1018. package/src/data/model/__tests__/sdk_config.test.ts +0 -85
  1019. package/src/data/model/__tests__/sdk_config_capture.test.ts +0 -140
  1020. package/src/data/model/__tests__/token_payload.test.ts +0 -224
  1021. package/src/data/model/__tests__/user_details_payload.test.ts +0 -100
  1022. package/src/data/model/image_dimensions.ts +0 -15
  1023. package/src/data/model/job_request.ts +0 -165
  1024. package/src/data/model/job_submission_response.ts +0 -17
  1025. package/src/data/model/sdk_config.ts +0 -74
  1026. package/src/data/model/sdk_config_capture.ts +0 -78
  1027. package/src/data/model/sdk_config_source.ts +0 -26
  1028. package/src/data/model/token_payload.ts +0 -182
  1029. package/src/data/model/user_details_payload.ts +0 -84
  1030. package/src/data/repository/__tests__/network_retries.test.ts +0 -117
  1031. package/src/data/repository/__tests__/repository_dispatch.test.ts +0 -366
  1032. package/src/data/repository/__tests__/use_smile_id_repository.test.ts +0 -118
  1033. package/src/data/repository/use_smile_id_repository.ts +0 -19
  1034. package/src/data/repository/use_smile_id_repository_impl.ts +0 -181
  1035. package/src/data/security/__tests__/request_canonicalizer.test.ts +0 -132
  1036. package/src/data/security/__tests__/security_policy.test.ts +0 -96
  1037. package/src/data/security/__tests__/signing_crypto.test.ts +0 -203
  1038. package/src/data/security/__tests__/smile_id_crypto_manager.test.ts +0 -176
  1039. package/src/data/security/request_canonicalizer.ts +0 -161
  1040. package/src/data/security/request_timestamp.ts +0 -12
  1041. package/src/data/security/security_policy.ts +0 -70
  1042. package/src/data/security/signing_crypto.ts +0 -219
  1043. package/src/data/security/smile_id_crypto_error.ts +0 -13
  1044. package/src/data/security/smile_id_crypto_manager.ts +0 -46
  1045. package/src/data/smile_id_urls.ts +0 -13
  1046. package/src/data/util/__tests__/retry_util.test.ts +0 -182
  1047. package/src/data/util/__tests__/use_smile_id_token_decoder.test.ts +0 -430
  1048. package/src/data/util/retry_util.ts +0 -81
  1049. package/src/data/util/use_smile_id_token_decoder.ts +0 -207
  1050. package/src/index.ts +0 -514
  1051. package/src/l10n/__tests__/use_smile_id_localizations.test.ts +0 -244
  1052. package/src/l10n/__tests__/use_smile_id_localizations_provider.test.tsx +0 -112
  1053. package/src/l10n/__tests__/use_smile_id_localizations_surface.test.ts +0 -231
  1054. package/src/l10n/strings_en.ts +0 -176
  1055. package/src/l10n/use_smile_id_localizations.ts +0 -768
  1056. package/src/l10n/use_smile_id_localizations_provider.tsx +0 -71
  1057. package/src/metadata/__tests__/device_orientation_collector.test.ts +0 -15
  1058. package/src/metadata/__tests__/device_orientation_sampling.test.ts +0 -165
  1059. package/src/metadata/__tests__/geolocation.test.ts +0 -150
  1060. package/src/metadata/__tests__/metadata_configuration_mappers.test.ts +0 -254
  1061. package/src/metadata/__tests__/metadata_configuration_objects.test.ts +0 -86
  1062. package/src/metadata/__tests__/metadata_device_context.test.ts +0 -147
  1063. package/src/metadata/__tests__/metadata_device_os_android.test.ts +0 -18
  1064. package/src/metadata/__tests__/metadata_golden_fixture.json +0 -13
  1065. package/src/metadata/__tests__/metadata_payload_golden.test.ts +0 -193
  1066. package/src/metadata/__tests__/optional_native_modules.test.ts +0 -234
  1067. package/src/metadata/__tests__/use_smile_id_metadata.test.ts +0 -430
  1068. package/src/metadata/__tests__/use_smile_id_metadata_factory.test.ts +0 -615
  1069. package/src/metadata/builder_configuration.ts +0 -69
  1070. package/src/metadata/captured_image_properties.ts +0 -10
  1071. package/src/metadata/device_orientation_collector.ts +0 -75
  1072. package/src/metadata/document_image_origin.ts +0 -22
  1073. package/src/metadata/geolocation.ts +0 -46
  1074. package/src/metadata/metadata_configuration_mappers.ts +0 -248
  1075. package/src/metadata/model_configuration.ts +0 -68
  1076. package/src/metadata/optional_native_modules.ts +0 -274
  1077. package/src/metadata/use_smile_id_metadata.ts +0 -305
  1078. package/src/metadata/use_smile_id_metadata_factory.ts +0 -580
  1079. package/src/presentation/assets/si_document_green_book_hero_animation.json +0 -1
  1080. package/src/presentation/assets/si_document_hero_animation.json +0 -1
  1081. package/src/presentation/assets/si_document_hero_back_animation.json +0 -1
  1082. package/src/presentation/assets/si_document_passport_hero_animation.json +0 -1
  1083. package/src/presentation/assets/si_ess_all_directions_hero_animation.json +0 -1
  1084. package/src/presentation/assets/si_ess_animation_all_directions.json +0 -1
  1085. package/src/presentation/assets/si_selfie_hero_animation.json +0 -1
  1086. package/src/presentation/assets/si_smile_to_capture_animation.json +0 -1
  1087. package/src/presentation/assets/svg/document_shimmer_strings.ts +0 -17
  1088. package/src/presentation/assets/svg/instruction_svg_strings.ts +0 -54
  1089. package/src/presentation/assets/svg/svg_strings.ts +0 -158
  1090. package/src/presentation/components/__tests__/capture_instruction_animation_spec.test.ts +0 -49
  1091. package/src/presentation/components/__tests__/enhanced_smart_selfie_animation_frames.test.ts +0 -89
  1092. package/src/presentation/components/__tests__/use_smile_id_capture_content.test.tsx +0 -348
  1093. package/src/presentation/components/__tests__/use_smile_id_confirmation_buttons.test.tsx +0 -131
  1094. package/src/presentation/components/__tests__/use_smile_id_content_card.test.tsx +0 -112
  1095. package/src/presentation/components/__tests__/use_smile_id_enhanced_smart_selfie_clip.test.tsx +0 -256
  1096. package/src/presentation/components/__tests__/use_smile_id_enhanced_smart_selfie_direction_animation.test.tsx +0 -138
  1097. package/src/presentation/components/__tests__/use_smile_id_face_oval_image.test.tsx +0 -190
  1098. package/src/presentation/components/__tests__/use_smile_id_face_overlay.test.tsx +0 -211
  1099. package/src/presentation/components/__tests__/use_smile_id_guideline_thumbnail.test.tsx +0 -112
  1100. package/src/presentation/components/__tests__/use_smile_id_instructions_hero.test.tsx +0 -150
  1101. package/src/presentation/components/__tests__/use_smile_id_learn_more_content.test.tsx +0 -159
  1102. package/src/presentation/components/__tests__/use_smile_id_loading_indicator.test.tsx +0 -45
  1103. package/src/presentation/components/__tests__/use_smile_id_oval_border_palette.test.ts +0 -103
  1104. package/src/presentation/components/__tests__/use_smile_id_processing_center_indicator.test.tsx +0 -88
  1105. package/src/presentation/components/face_oval_defaults.ts +0 -51
  1106. package/src/presentation/components/helpers/__tests__/scaled_oval_geometry.test.ts +0 -69
  1107. package/src/presentation/components/helpers/animated_lottie_view.ts +0 -9
  1108. package/src/presentation/components/helpers/capture_instruction_animation_spec.ts +0 -77
  1109. package/src/presentation/components/helpers/enhanced_smart_selfie_animation_frames.ts +0 -64
  1110. package/src/presentation/components/helpers/scaled_oval_geometry.ts +0 -44
  1111. package/src/presentation/components/icons/index.tsx +0 -334
  1112. package/src/presentation/components/status_indicator_state.ts +0 -21
  1113. package/src/presentation/components/use_smile_id_attribution.tsx +0 -48
  1114. package/src/presentation/components/use_smile_id_back_button.tsx +0 -59
  1115. package/src/presentation/components/use_smile_id_button.tsx +0 -98
  1116. package/src/presentation/components/use_smile_id_capture_content.tsx +0 -368
  1117. package/src/presentation/components/use_smile_id_capture_instruction_animation.tsx +0 -84
  1118. package/src/presentation/components/use_smile_id_capture_spinner.tsx +0 -63
  1119. package/src/presentation/components/use_smile_id_captured_document_image.tsx +0 -81
  1120. package/src/presentation/components/use_smile_id_captured_image_oval.tsx +0 -151
  1121. package/src/presentation/components/use_smile_id_card_surface.tsx +0 -54
  1122. package/src/presentation/components/use_smile_id_confirmation_buttons.tsx +0 -123
  1123. package/src/presentation/components/use_smile_id_consent_row.tsx +0 -58
  1124. package/src/presentation/components/use_smile_id_content_card.tsx +0 -65
  1125. package/src/presentation/components/use_smile_id_document_capture_controls.tsx +0 -219
  1126. package/src/presentation/components/use_smile_id_document_overlay.tsx +0 -335
  1127. package/src/presentation/components/use_smile_id_document_shimmer.tsx +0 -51
  1128. package/src/presentation/components/use_smile_id_enhanced_smart_selfie_clip.tsx +0 -155
  1129. package/src/presentation/components/use_smile_id_enhanced_smart_selfie_direction_animation.tsx +0 -46
  1130. package/src/presentation/components/use_smile_id_enhanced_smart_selfie_full_animation.tsx +0 -29
  1131. package/src/presentation/components/use_smile_id_expandable_icon.tsx +0 -102
  1132. package/src/presentation/components/use_smile_id_face_oval_image.tsx +0 -90
  1133. package/src/presentation/components/use_smile_id_face_overlay.tsx +0 -387
  1134. package/src/presentation/components/use_smile_id_failed_content.tsx +0 -94
  1135. package/src/presentation/components/use_smile_id_guideline_thumbnail.tsx +0 -263
  1136. package/src/presentation/components/use_smile_id_instructions_hero.tsx +0 -296
  1137. package/src/presentation/components/use_smile_id_learn_more_content.tsx +0 -115
  1138. package/src/presentation/components/use_smile_id_loading_content.tsx +0 -54
  1139. package/src/presentation/components/use_smile_id_loading_indicator.tsx +0 -81
  1140. package/src/presentation/components/use_smile_id_oval_border_palette.ts +0 -64
  1141. package/src/presentation/components/use_smile_id_partner_icon.tsx +0 -56
  1142. package/src/presentation/components/use_smile_id_processing_center_indicator.tsx +0 -77
  1143. package/src/presentation/components/use_smile_id_rounded_checkbox.tsx +0 -67
  1144. package/src/presentation/components/use_smile_id_status_indicator.tsx +0 -44
  1145. package/src/presentation/components/use_smile_id_success_content.tsx +0 -76
  1146. package/src/presentation/flow/__tests__/document_flow_navigation.test.ts +0 -484
  1147. package/src/presentation/flow/__tests__/flow_navigation_manager.test.ts +0 -1534
  1148. package/src/presentation/flow/__tests__/use_smile_id_flow.test.tsx +0 -651
  1149. package/src/presentation/flow/analytics/__tests__/use_smile_id_analytics_event.test.ts +0 -105
  1150. package/src/presentation/flow/analytics/use_smile_id_analytics_event.ts +0 -83
  1151. package/src/presentation/flow/config/flow_configuration.ts +0 -12
  1152. package/src/presentation/flow/dsl/__tests__/use_smile_id_builder_component.test.tsx +0 -120
  1153. package/src/presentation/flow/dsl/builder/__tests__/config_builder.test.ts +0 -25
  1154. package/src/presentation/flow/dsl/builder/__tests__/ml_builder.test.ts +0 -161
  1155. package/src/presentation/flow/dsl/builder/__tests__/theme_builder.test.ts +0 -102
  1156. package/src/presentation/flow/dsl/builder/config_builder.ts +0 -57
  1157. package/src/presentation/flow/dsl/builder/ml_builder.ts +0 -210
  1158. package/src/presentation/flow/dsl/builder/screens_builder.ts +0 -276
  1159. package/src/presentation/flow/dsl/builder/theme_builder.ts +0 -119
  1160. package/src/presentation/flow/dsl/flow_build_result.ts +0 -37
  1161. package/src/presentation/flow/dsl/use_smile_id_builder.tsx +0 -125
  1162. package/src/presentation/flow/dsl/use_smile_id_flow_builder.ts +0 -454
  1163. package/src/presentation/flow/flow_navigation_context.tsx +0 -50
  1164. package/src/presentation/flow/flow_navigation_manager.ts +0 -1166
  1165. package/src/presentation/flow/graph/__tests__/screen_renderer.test.tsx +0 -102
  1166. package/src/presentation/flow/graph/screen_renderer.tsx +0 -35
  1167. package/src/presentation/flow/job_submission_state.ts +0 -17
  1168. package/src/presentation/flow/model/instruction_guideline.ts +0 -21
  1169. package/src/presentation/flow/model/instructions_defaults.ts +0 -198
  1170. package/src/presentation/flow/screen/__tests__/orchestrated_capture_screen.test.tsx +0 -836
  1171. package/src/presentation/flow/screen/__tests__/orchestrated_consent_screen.test.tsx +0 -165
  1172. package/src/presentation/flow/screen/__tests__/orchestrated_instructions_screen.test.tsx +0 -163
  1173. package/src/presentation/flow/screen/__tests__/orchestrated_preview_screen.test.tsx +0 -224
  1174. package/src/presentation/flow/screen/__tests__/orchestrated_processing_screen.test.tsx +0 -338
  1175. package/src/presentation/flow/screen/helpers/__tests__/face_session_config.test.ts +0 -115
  1176. package/src/presentation/flow/screen/helpers/face_session_config.ts +0 -77
  1177. package/src/presentation/flow/screen/orchestrated_capture_screen.tsx +0 -344
  1178. package/src/presentation/flow/screen/orchestrated_consent_screen.tsx +0 -71
  1179. package/src/presentation/flow/screen/orchestrated_instructions_screen.tsx +0 -103
  1180. package/src/presentation/flow/screen/orchestrated_preview_screen.tsx +0 -62
  1181. package/src/presentation/flow/screen/orchestrated_processing_screen.tsx +0 -148
  1182. package/src/presentation/flow/screen/use_smile_id_orchestrated_screen_host.tsx +0 -39
  1183. package/src/presentation/flow/screen/validation_error_screen.tsx +0 -147
  1184. package/src/presentation/flow/use_smile_id_flow.tsx +0 -389
  1185. package/src/presentation/flow/validation/__tests__/flow_validator.test.ts +0 -616
  1186. package/src/presentation/flow/validation/__tests__/job_type_validator.test.ts +0 -968
  1187. package/src/presentation/flow/validation/flow_validator.ts +0 -461
  1188. package/src/presentation/flow/validation/job_type_validator.ts +0 -703
  1189. package/src/presentation/flow/validation/user_details_validator.ts +0 -53
  1190. package/src/presentation/flow/validation/validation_state.ts +0 -65
  1191. package/src/presentation/screen/__tests__/capture_screen_helpers.test.ts +0 -112
  1192. package/src/presentation/screen/__tests__/capture_ui_state.test.ts +0 -398
  1193. package/src/presentation/screen/__tests__/consent_screen_helpers.test.ts +0 -63
  1194. package/src/presentation/screen/__tests__/ess_turn_haptics.test.ts +0 -82
  1195. package/src/presentation/screen/__tests__/feedback_copy_table.test.ts +0 -145
  1196. package/src/presentation/screen/__tests__/feedback_debouncer.test.ts +0 -111
  1197. package/src/presentation/screen/__tests__/instructions_screen_helpers.test.ts +0 -154
  1198. package/src/presentation/screen/__tests__/preview_screen_helpers.test.ts +0 -53
  1199. package/src/presentation/screen/__tests__/processing_screen_helpers.test.ts +0 -39
  1200. package/src/presentation/screen/__tests__/scan_state_to_overlay_state.test.ts +0 -223
  1201. package/src/presentation/screen/__tests__/use_smile_id_capture_screen.test.tsx +0 -1128
  1202. package/src/presentation/screen/__tests__/use_smile_id_consent_screen.test.tsx +0 -288
  1203. package/src/presentation/screen/__tests__/use_smile_id_document_back_instructions.test.tsx +0 -138
  1204. package/src/presentation/screen/__tests__/use_smile_id_instructions_screen.test.tsx +0 -245
  1205. package/src/presentation/screen/__tests__/use_smile_id_permission_screen.test.tsx +0 -68
  1206. package/src/presentation/screen/__tests__/use_smile_id_preview_screen.test.tsx +0 -193
  1207. package/src/presentation/screen/__tests__/use_smile_id_processing_screen.test.tsx +0 -333
  1208. package/src/presentation/screen/helpers/__tests__/use_capture_orientation_lock.test.tsx +0 -212
  1209. package/src/presentation/screen/helpers/capture_screen_helpers.ts +0 -153
  1210. package/src/presentation/screen/helpers/capture_ui_state.ts +0 -298
  1211. package/src/presentation/screen/helpers/consent_screen_helpers.ts +0 -106
  1212. package/src/presentation/screen/helpers/ess_turn_haptics.ts +0 -67
  1213. package/src/presentation/screen/helpers/feedback_debouncer.ts +0 -89
  1214. package/src/presentation/screen/helpers/instructions_screen_helpers.ts +0 -113
  1215. package/src/presentation/screen/helpers/preview_screen_helpers.ts +0 -41
  1216. package/src/presentation/screen/helpers/processing_screen_helpers.ts +0 -27
  1217. package/src/presentation/screen/helpers/scan_state_to_overlay_state.ts +0 -131
  1218. package/src/presentation/screen/helpers/use_capture_orientation_lock.ts +0 -108
  1219. package/src/presentation/screen/helpers/use_debounced_feedback_key.ts +0 -52
  1220. package/src/presentation/screen/use_smile_id_capture_screen.tsx +0 -912
  1221. package/src/presentation/screen/use_smile_id_consent_screen.tsx +0 -393
  1222. package/src/presentation/screen/use_smile_id_document_back_instructions.tsx +0 -125
  1223. package/src/presentation/screen/use_smile_id_document_preview_screen.tsx +0 -152
  1224. package/src/presentation/screen/use_smile_id_instructions_screen.tsx +0 -198
  1225. package/src/presentation/screen/use_smile_id_permission_screen.tsx +0 -52
  1226. package/src/presentation/screen/use_smile_id_preview_screen.tsx +0 -127
  1227. package/src/presentation/screen/use_smile_id_processing_screen.tsx +0 -223
  1228. package/src/presentation/state/__tests__/use_smile_id_overlay_state.test.ts +0 -30
  1229. package/src/presentation/state/processing_state.ts +0 -19
  1230. package/src/presentation/state/use_smile_id_overlay_state.ts +0 -70
  1231. package/src/presentation/theme/__tests__/use_use_smile_id_fonts.test.tsx +0 -166
  1232. package/src/presentation/theme/theme.ts +0 -401
  1233. package/src/presentation/theme/theme_context.tsx +0 -45
  1234. package/src/presentation/theme/use_smile_id_motion.ts +0 -12
  1235. package/src/presentation/theme/use_use_smile_id_fonts.ts +0 -71
  1236. package/src/presentation/utils/__tests__/force_max_brightness.test.tsx +0 -237
  1237. package/src/presentation/utils/__tests__/locale_utils.test.ts +0 -78
  1238. package/src/presentation/utils/force_max_brightness.tsx +0 -113
  1239. package/src/presentation/utils/locale_utils.ts +0 -80
  1240. package/src/presentation/utils/use_reduced_motion.ts +0 -26
  1241. package/src/testing/__tests__/fake_face_analyzer.test.ts +0 -42
  1242. package/src/testing/__tests__/scenario_expectations.test.ts +0 -110
  1243. package/src/testing/__tests__/scenario_loader.test.ts +0 -64
  1244. package/src/testing/fake_face_analyzer.ts +0 -82
  1245. package/src/testing/index.ts +0 -15
  1246. package/src/testing/scenario_expectations.ts +0 -87
  1247. package/src/testing/scenario_loader.ts +0 -83
  1248. package/src/testing/scripted_scan_results.ts +0 -66
  1249. /package/{src → dist}/presentation/assets/fonts/DMSans-Bold.ttf +0 -0
  1250. /package/{src → dist}/presentation/assets/fonts/DMSans-ExtraBold.ttf +0 -0
  1251. /package/{src → dist}/presentation/assets/fonts/DMSans-Medium.ttf +0 -0
  1252. /package/{src → dist}/presentation/assets/fonts/DMSans-Regular.ttf +0 -0
  1253. /package/{src → dist}/presentation/assets/fonts/DMSans-SemiBold.ttf +0 -0
  1254. /package/{src → dist}/presentation/assets/fonts/OFL.txt +0 -0
  1255. /package/{src → dist}/presentation/assets/si_dark_lighting_animation.json +0 -0
  1256. /package/{src → dist}/presentation/assets/si_device_orientation_animation.json +0 -0
  1257. /package/{src → dist}/presentation/assets/svg/si_attribution.svg +0 -0
  1258. /package/{src → dist}/presentation/assets/svg/si_attribution_dark.svg +0 -0
  1259. /package/{src → dist}/presentation/assets/svg/si_checkbox_check.svg +0 -0
  1260. /package/{src → dist}/presentation/assets/svg/si_consent_biometric.svg +0 -0
  1261. /package/{src → dist}/presentation/assets/svg/si_consent_biometric_dark.svg +0 -0
  1262. /package/{src → dist}/presentation/assets/svg/si_consent_contact.svg +0 -0
  1263. /package/{src → dist}/presentation/assets/svg/si_consent_contact_dark.svg +0 -0
  1264. /package/{src → dist}/presentation/assets/svg/si_consent_device.svg +0 -0
  1265. /package/{src → dist}/presentation/assets/svg/si_consent_device_dark.svg +0 -0
  1266. /package/{src → dist}/presentation/assets/svg/si_consent_personal.svg +0 -0
  1267. /package/{src → dist}/presentation/assets/svg/si_consent_personal_dark.svg +0 -0
  1268. /package/{src → dist}/presentation/assets/svg/si_expand_more.svg +0 -0
  1269. /package/{src → dist}/presentation/assets/svg/si_plus.svg +0 -0
  1270. /package/{src → dist}/presentation/assets/svg/si_smile_consent_icon.svg +0 -0
@@ -1,1165 +0,0 @@
1
- import { GlobalPrivacyControl } from "../core/models/global_privacy_control";
2
- import { describe, expect, it, vi } from "vitest";
3
- import { AnalyzerFactoryKey } from "@smileid/usesmileid_bridge";
4
- import type {
5
- FaceAnalyzer,
6
- DocumentAnalyzer,
7
- } from "@smileid/usesmileid_platform_interface";
8
- import {
9
- useSmileIDBuilder,
10
- UseSmileIDFlowBuilder,
11
- } from "../presentation/flow/dsl/use_smile_id_builder";
12
- import {
13
- CaptureConfigBuilder,
14
- CaptureType,
15
- } from "../presentation/flow/dsl/builder/screens_builder";
16
- import { JobType } from "../core/models/job_type";
17
- import { DocumentType } from "../core/models/document_type";
18
- import { LogLevel } from "../core/models/network_config";
19
- import type { FlowConfigurationSnapshot } from "../presentation/flow/dsl/use_smile_id_flow_builder";
20
-
21
- // Test helper: invokes useSmileIDBuilder, asserts kind === 'success'
22
- // and returns the configuration. Throws with a descriptive message
23
- // when the builder reports invalid — keeps test bodies focused on
24
- // the surface under test instead of ceremony.
25
- function buildOk(
26
- configure: (b: UseSmileIDFlowBuilder) => void,
27
- ): FlowConfigurationSnapshot {
28
- const result = useSmileIDBuilder(configure);
29
- if (result.kind === "invalid") {
30
- throw new Error(
31
- `Expected build() success, got invalid: ${result.validation.issues.map((i) => i.message).join("; ")}`,
32
- );
33
- }
34
- return result.configuration;
35
- }
36
-
37
- // Test helper: invokes useSmileIDBuilder and expects an invalid
38
- // result whose first issue's message matches `pattern`. The
39
- // canonical migration target for the legacy `expect(() =>
40
- // useSmileIDBuilder(...)).toThrow(/regex/)` pattern.
41
- function expectBuildInvalid(
42
- configure: (b: UseSmileIDFlowBuilder) => void,
43
- pattern: RegExp,
44
- ): void {
45
- const result = useSmileIDBuilder(configure);
46
- expect(result.kind).toBe("invalid");
47
- if (result.kind === "invalid") {
48
- const matched = result.validation.issues.some((i) =>
49
- pattern.test(i.message),
50
- );
51
- if (!matched) {
52
- throw new Error(
53
- `Expected an invalid issue matching ${pattern} but got: ${result.validation.issues.map((i) => i.message).join(", ")}`,
54
- );
55
- }
56
- }
57
- }
58
-
59
- const stubFaceAnalyzer: FaceAnalyzer = {
60
- kind: "face",
61
- key: AnalyzerFactoryKey.VisionFace,
62
- frameProcessorPluginName: "UseSmileIDVisionFaceFrameProcessor",
63
- configure: vi.fn(),
64
- reset: vi.fn(),
65
- flush: vi.fn(),
66
- close: vi.fn(),
67
- };
68
-
69
- const stubDocumentAnalyzer: DocumentAnalyzer = {
70
- kind: "document",
71
- frameProcessorPluginName: "UseSmileIDVisionDocumentFrameProcessor",
72
- configure: vi.fn(),
73
- reset: vi.fn(),
74
- flush: vi.fn(),
75
- close: vi.fn(),
76
- };
77
-
78
- /**
79
- * Add the minimum screens block needed to satisfy `build()`'s
80
- * non-empty-screens invariant — used by tests that exercise other
81
- * surfaces (config, theme, network, ml) and don't otherwise care
82
- * about the screens block.
83
- */
84
- function withMinimalScreens(b: UseSmileIDFlowBuilder): void {
85
- b.screens((screens) => {
86
- screens.instructions();
87
- });
88
- }
89
-
90
- /**
91
- * Add the screens / ml / consent state needed to satisfy the
92
- * `documentVerification` job-type rules — used by tests that exercise
93
- * the network-config surface for a real job type and don't otherwise
94
- * care about the screens block. The caller still supplies its own
95
- * `network { }` block.
96
- */
97
- function withValidDocumentFlow(b: UseSmileIDFlowBuilder): void {
98
- b.consentInformation = {
99
- granted: true,
100
- grantedAt: "2026-04-30T00:00:00.000Z",
101
- noticeLanguage: "EN",
102
- noticePrivacyPolicyUrl: "https://example.test/p",
103
- };
104
- // Document Verification requires its params + the shared user_details.
105
- b.documentVerificationParams = { country: "KE", idType: "NATIONAL_ID" };
106
- b.userDetails = {
107
- givenNames: "Ada",
108
- lastName: "Lovelace",
109
- email: "ada@example.com",
110
- };
111
- b.screens((screens) => {
112
- screens.capture((c) => {
113
- c.captureType = CaptureType.selfie;
114
- });
115
- screens.capture((c) => {
116
- c.captureType = CaptureType.document;
117
- c.document((d) => {
118
- d.documentType = DocumentType.GenericDocument();
119
- });
120
- });
121
- screens.processing();
122
- });
123
- b.ml((m) => {
124
- m.analyzers((a) => {
125
- a.forCaptureType(CaptureType.selfie, (face) => {
126
- face.add(stubFaceAnalyzer);
127
- });
128
- });
129
- });
130
- }
131
-
132
- describe("useSmileIDBuilder — closure-based DSL", () => {
133
- it("produces a frozen FlowConfiguration when at least one screen is configured", () => {
134
- const config = buildOk((b) => {
135
- withMinimalScreens(b);
136
- });
137
- expect(Object.isFrozen(config)).toBe(true);
138
- expect(config.screens.steps).toHaveLength(1);
139
- expect(typeof config.onResult).toBe("function");
140
- });
141
-
142
- it("rejects an empty screens block at build time", () => {
143
- // The error message reads "The screens { } block is empty …".
144
- // Match across the literal `{ }` between "screens" and "block"
145
- // so the assertion isn't tied to that formatting detail.
146
- expectBuildInvalid(() => {}, /screens.*block is empty/i);
147
- });
148
-
149
- describe("config block", () => {
150
- it("global privacy control defaults to opt-out", () => {
151
- const config = buildOk((b) => {
152
- withMinimalScreens(b);
153
- b.config(() => {});
154
- });
155
- expect(config.config?.globalPrivacyControl).toBe(
156
- GlobalPrivacyControl.OptOut,
157
- );
158
- });
159
-
160
- it("global privacy control opt-in flows from the config block", () => {
161
- const config = buildOk((b) => {
162
- withMinimalScreens(b);
163
- b.config((c) => {
164
- c.globalPrivacyControl = GlobalPrivacyControl.OptIn;
165
- });
166
- });
167
- expect(config.config?.globalPrivacyControl).toBe(
168
- GlobalPrivacyControl.OptIn,
169
- );
170
- });
171
-
172
- it("captures enableCrashReporting through the closure", () => {
173
- const config = buildOk((b) => {
174
- withMinimalScreens(b);
175
- b.config((c) => {
176
- c.enableCrashReporting = false;
177
- });
178
- });
179
- expect(config.config?.enableCrashReporting).toBe(false);
180
- });
181
-
182
- it("composes across multiple config() calls", () => {
183
- // Concrete scenario: a partner extracts theme + flag setup into
184
- // separate helper functions that each call b.config(...). With
185
- // composing semantics, both calls' state lands on the same
186
- // ConfigBuilder. Without it, the second would overwrite the
187
- // first.
188
- const config = buildOk((b) => {
189
- withMinimalScreens(b);
190
- b.config((c) => {
191
- c.enableCrashReporting = false;
192
- });
193
- b.config((c) => {
194
- c.enableDebugMode = true;
195
- });
196
- });
197
- expect(config.config?.enableCrashReporting).toBe(false);
198
- expect(config.config?.enableDebugMode).toBe(true);
199
- });
200
- });
201
-
202
- describe("network block (3-level closure nesting)", () => {
203
- it("captures partnerConfig and logging via nested closures", () => {
204
- const config = buildOk((b) => {
205
- withValidDocumentFlow(b);
206
- b.network((n) => {
207
- n.config((c) => {
208
- c.jobType = JobType.documentVerification;
209
- c.token = "api-key";
210
- c.partnerConfig((p) => {
211
- p.partnerId = "partner-id";
212
- p.callbackUrl = "https://example.com/cb";
213
- p.useSandbox = true;
214
- });
215
- c.logging((l) => {
216
- l.enabled = true;
217
- l.level = LogLevel.body;
218
- });
219
- });
220
- // TimeoutConfigBuilder takes seconds (matching the rest of
221
- // the SDK's HTTP-config surface — Dio, Axios, OkHttp all
222
- // express timeouts as seconds at this layer). Fields are
223
- // `connect / read / write / call`, no `Ms` suffix.
224
- n.timeouts((t) => {
225
- t.connect = 30;
226
- t.call = 120;
227
- });
228
- });
229
- });
230
- expect(config.network?.config?.jobType).toBe(
231
- JobType.documentVerification,
232
- );
233
- expect(config.network?.config?.partnerConfig?.partnerId).toBe(
234
- "partner-id",
235
- );
236
- expect(config.network?.config?.token).toBe("api-key");
237
- expect(config.network?.config?.partnerConfig?.useSandbox).toBe(true);
238
- expect(config.network?.config?.logging?.level).toBe("body");
239
- expect(config.network?.timeouts?.connect).toBe(30);
240
- expect(config.network?.timeouts?.call).toBe(120);
241
- });
242
-
243
- it("captures partnerParams on PartnerConfig and preserves the value shape", () => {
244
- // Concrete scenario: partners attach a custom job-correlation
245
- // map (e.g. internal session id) via `p.partnerParams = { ... }`
246
- // so the lambda webhook can de-duplicate on the partner side.
247
- // The DSL must forward the field onto `PartnerConfig.partnerParams`
248
- // unchanged so the API layer can serialize it as the
249
- // `partner_params` JSON multipart part.
250
- const config = buildOk((b) => {
251
- withValidDocumentFlow(b);
252
- b.network((n) => {
253
- n.config((c) => {
254
- c.jobType = JobType.documentVerification;
255
- c.token = "api-key";
256
- c.partnerConfig((p) => {
257
- p.partnerId = "partner-id";
258
- p.callbackUrl = "https://example.com/cb";
259
- p.useSandbox = true;
260
- p.partnerParams = { jobRef: "ref-42", sessionId: "s-1" };
261
- });
262
- });
263
- });
264
- });
265
- expect(config.network?.config?.partnerConfig?.partnerParams).toEqual({
266
- jobRef: "ref-42",
267
- sessionId: "s-1",
268
- });
269
- });
270
-
271
- it("omits partnerParams from the built PartnerConfig when never set", () => {
272
- // exactOptionalPropertyTypes contract — the field is absent on
273
- // the built object (not present-and-undefined) so partners doing
274
- // `Object.keys(partnerConfig)` don't observe the key.
275
- const config = buildOk((b) => {
276
- withValidDocumentFlow(b);
277
- b.network((n) => {
278
- n.config((c) => {
279
- c.jobType = JobType.documentVerification;
280
- c.token = "k";
281
- c.partnerConfig((p) => {
282
- p.partnerId = "p";
283
- p.callbackUrl = "";
284
- p.useSandbox = true;
285
- });
286
- });
287
- });
288
- });
289
- expect(
290
- Object.prototype.hasOwnProperty.call(
291
- config.network!.config!.partnerConfig!,
292
- "partnerParams",
293
- ),
294
- ).toBe(false);
295
- });
296
- });
297
-
298
- describe("ml block", () => {
299
- it("registers face and document analyzers via forCaptureType scopes", () => {
300
- const config = buildOk((b) => {
301
- withMinimalScreens(b);
302
- b.ml((m) => {
303
- m.analyzers((a) => {
304
- a.forCaptureType(CaptureType.selfie, (face) => {
305
- face.add(stubFaceAnalyzer);
306
- });
307
- a.forCaptureType(CaptureType.document, (doc) => {
308
- doc.add(stubDocumentAnalyzer);
309
- });
310
- });
311
- });
312
- });
313
- expect(config.ml?.analyzers.selfie).toBe(stubFaceAnalyzer);
314
- expect(config.ml?.analyzers.document).toBe(stubDocumentAnalyzer);
315
- });
316
-
317
- it("type-narrows the scope per captureType — concrete scenario test", () => {
318
- // Concrete scenario: the FaceAnalyzerScope has `add(FaceAnalyzer)`
319
- // and the DocumentAnalyzerScope has `add(DocumentAnalyzer)`. A
320
- // copy-paste typo where the partner adds a document analyzer
321
- // inside a 'face' scope would fail to compile (TS function-
322
- // overload narrowing). This test pins the runtime value so a
323
- // future refactor that drops the overloads would still surface
324
- // the wrong-slot drop here.
325
- const builder = new UseSmileIDFlowBuilder();
326
- withMinimalScreens(builder);
327
- builder.ml((m) => {
328
- m.analyzers((a) => {
329
- a.forCaptureType(CaptureType.selfie, (face) =>
330
- face.add(stubFaceAnalyzer),
331
- );
332
- });
333
- });
334
- // `build()` returns a discriminated union — unwrap the
335
- // success branch before reading the configuration. A
336
- // `kind === "invalid"` here would mean the validator
337
- // rejected `withMinimalScreens` + a single selfie analyzer,
338
- // which would be the real bug worth surfacing.
339
- const built = builder.build();
340
- expect(built.kind).toBe("success");
341
- if (built.kind !== "success") return;
342
- expect(built.configuration.ml?.analyzers.selfie).toBe(stubFaceAnalyzer);
343
- expect(built.configuration.ml?.analyzers.document).toBeUndefined();
344
- });
345
- });
346
-
347
- describe("screens block", () => {
348
- it("records steps in declaration order", () => {
349
- const config = buildOk((b) => {
350
- b.network((n) => {
351
- n.config((c) => {
352
- c.jobType = JobType.smartSelfieEnrollment;
353
- c.token = "k";
354
- c.partnerConfig((p) => {
355
- p.partnerId = "p";
356
- p.callbackUrl = "";
357
- p.useSandbox = true;
358
- });
359
- });
360
- });
361
- // smartSelfieEnrollment requires userDetails (the v3 wire
362
- // path carries `user_details` as a multipart part).
363
- b.userDetails = {
364
- givenNames: "Ada",
365
- lastName: "Lovelace",
366
- email: "ada@example.test",
367
- };
368
- b.ml((m) => {
369
- m.analyzers((a) => {
370
- a.forCaptureType(CaptureType.selfie, (face) =>
371
- face.add(stubFaceAnalyzer),
372
- );
373
- });
374
- });
375
- b.screens((screens) => {
376
- screens.consent((c) => {
377
- c.partnerName = "Acme";
378
- c.partnerIcon = "icon";
379
- c.partnerPrivacyPolicyUrl = "https://acme.com/privacy";
380
- });
381
- screens.instructions();
382
- screens.capture((c) => {
383
- c.captureType = CaptureType.selfie;
384
- });
385
- screens.preview();
386
- screens.processing();
387
- });
388
- });
389
- const steps = config.screens.steps;
390
- expect(steps.map((s) => s.kind)).toEqual([
391
- "consent",
392
- "instructions",
393
- "capture",
394
- "preview",
395
- "processing",
396
- ]);
397
- });
398
-
399
- it("capture(...) accepts a nested selfie config closure", () => {
400
- const config = buildOk((b) => {
401
- b.ml((m) => {
402
- m.analyzers((a) => {
403
- a.forCaptureType(CaptureType.selfie, (face) =>
404
- face.add(stubFaceAnalyzer),
405
- );
406
- });
407
- });
408
- b.screens((screens) => {
409
- screens.capture((cap) => {
410
- cap.captureType = CaptureType.selfie;
411
- // Mutually exclusive, so the closure is exercised one flag at a time.
412
- cap.selfie((sel) => {
413
- sel.allowAgentMode = true;
414
- });
415
- });
416
- });
417
- });
418
- const captureStep = config.screens.steps[0];
419
- expect(captureStep?.kind).toBe("capture");
420
- if (captureStep?.kind === "capture") {
421
- expect(captureStep.config.selfieConfig?.allowAgentMode).toBe(true);
422
- expect(captureStep.config.selfieConfig?.enableEnhancedLiveness).toBe(
423
- false,
424
- );
425
- }
426
- });
427
-
428
- it("capture(...) plumbs enableEnhancedLiveness through the selfie closure", () => {
429
- const config = buildOk((b) => {
430
- b.ml((m) => {
431
- m.analyzers((a) => {
432
- a.forCaptureType(CaptureType.selfie, (face) =>
433
- face.add(stubFaceAnalyzer),
434
- );
435
- });
436
- });
437
- b.screens((screens) => {
438
- screens.capture((cap) => {
439
- cap.captureType = CaptureType.selfie;
440
- cap.selfie((sel) => {
441
- sel.enableEnhancedLiveness = true;
442
- });
443
- });
444
- });
445
- });
446
- const captureStep = config.screens.steps[0];
447
- if (captureStep?.kind === "capture") {
448
- expect(captureStep.config.selfieConfig?.enableEnhancedLiveness).toBe(
449
- true,
450
- );
451
- expect(captureStep.config.selfieConfig?.allowAgentMode).toBe(false);
452
- }
453
- });
454
- });
455
-
456
- describe("build-time validations", () => {
457
- it("does NOT throw when an ml block is missing — capture-without-ml is severity warning, not error", () => {
458
- // Severity discipline: capture-without-ml is a warning, not an
459
- // error. The flow builds, but the analyzer slot is empty so
460
- // capture won't actually do ML at runtime. Partners surface
461
- // this via b.validate().
462
- buildOk((b) => {
463
- b.screens((screens) =>
464
- screens.capture((c) => {
465
- c.captureType = CaptureType.selfie;
466
- }),
467
- );
468
- });
469
- });
470
-
471
- it("runFlowValidation surfaces missing ml block as a warning issue", async () => {
472
- // The full validator surfaces the warning. `b.validate()` is
473
- // intentionally narrowed to empty-screens triage; the warning
474
- // surface is internal to `build()` and consumed via the
475
- // dispatcher's logging.
476
- const { MissingMLConfigurationBlockException } =
477
- await import("../core/exception/job_validation_exceptions");
478
- const { runFlowValidation } =
479
- await import("../presentation/flow/validation/flow_validator");
480
- const captureConfig = new CaptureConfigBuilder();
481
- captureConfig.captureType = CaptureType.selfie;
482
- const issues = runFlowValidation({
483
- steps: [
484
- {
485
- kind: "capture",
486
- config: captureConfig,
487
- },
488
- ],
489
- });
490
- const issue = issues.find(
491
- (i) => i instanceof MissingMLConfigurationBlockException,
492
- );
493
- expect(issue).toBeDefined();
494
- expect(issue?.severity).toBe("warning");
495
- });
496
-
497
- it("fails the build when a processing screen has no network block (strict: jobType is required)", () => {
498
- // Strict contract (parity with Android/Flutter): a processing screen
499
- // always requires a resolved jobType, so a no-network flow fails with
500
- // the jobType error (alongside the missing-network warning).
501
- expectBuildInvalid((b) => {
502
- b.screens((screens) => screens.processing());
503
- }, /jobType is not set/i);
504
- });
505
-
506
- it("requires a configured `jobType` when a processing screen is present", () => {
507
- expectBuildInvalid((b) => {
508
- b.screens((screens) => screens.processing());
509
- b.network((n) => {
510
- n.config((c) => {
511
- c.token = "k";
512
- c.partnerConfig((p) => {
513
- p.partnerId = "p";
514
- p.callbackUrl = "";
515
- p.useSandbox = true;
516
- });
517
- });
518
- });
519
- }, /jobType is not set/i);
520
- });
521
-
522
- it("rejects consent screen + pre-supplied consentInformation as mutually exclusive", () => {
523
- expectBuildInvalid((b) => {
524
- b.consentInformation = {
525
- granted: true,
526
- grantedAt: "2026-01-01T00:00:00.000Z",
527
- noticeLanguage: "EN",
528
- noticePrivacyPolicyUrl: "https://example.test/p",
529
- };
530
- b.screens((screens) => {
531
- screens.consent();
532
- screens.instructions();
533
- });
534
- }, /Exactly one form of consent is required/);
535
- });
536
-
537
- it("rejects consent that has not been granted", () => {
538
- expectBuildInvalid((b) => {
539
- b.consentInformation = {
540
- granted: false,
541
- grantedAt: "2026-01-01T00:00:00.000Z",
542
- noticeLanguage: "EN",
543
- noticePrivacyPolicyUrl: "https://example.test/p",
544
- };
545
- withMinimalScreens(b);
546
- }, /granted must be true/i);
547
- });
548
-
549
- it("rejects EnhancedKYCParams with blank required fields", () => {
550
- expectBuildInvalid((b) => {
551
- b.enhancedKYCParams = {
552
- idType: "NATIONAL_ID",
553
- idNumber: "",
554
- country: "KE",
555
- };
556
- b.userDetails = {
557
- givenNames: "John",
558
- lastName: "Doe",
559
- email: "x@y",
560
- phoneNumber: "+254000000000",
561
- };
562
- withMinimalScreens(b);
563
- }, /Invalid value for field 'idNumber': must not be blank/i);
564
- });
565
-
566
- it("rejects userDetails (top-level) with blank givenNames", () => {
567
- expectBuildInvalid((b) => {
568
- b.enhancedKYCParams = {
569
- idType: "NATIONAL_ID",
570
- idNumber: "1",
571
- country: "KE",
572
- };
573
- b.userDetails = {
574
- givenNames: " ",
575
- lastName: "Doe",
576
- email: "x@y",
577
- };
578
- withMinimalScreens(b);
579
- }, /Invalid value for field 'userDetails\.givenNames': must not be blank/i);
580
- });
581
-
582
- it("rejects userDetails missing both email and phoneNumber", () => {
583
- expectBuildInvalid((b) => {
584
- b.biometricKYCParams = {
585
- idType: "NATIONAL_ID",
586
- idNumber: "1",
587
- country: "KE",
588
- useEnrolledImage: false,
589
- };
590
- b.userDetails = {
591
- givenNames: "John",
592
- lastName: "Doe",
593
- };
594
- withMinimalScreens(b);
595
- }, /at least one of email or phoneNumber/i);
596
- });
597
-
598
- it("rejects consent screen appearing after the first slot", () => {
599
- expectBuildInvalid((b) => {
600
- b.screens((screens) => {
601
- screens.instructions();
602
- screens.consent();
603
- });
604
- }, /consent screen must be the first/i);
605
- });
606
-
607
- it("rejects preview without a preceding capture", () => {
608
- expectBuildInvalid((b) => {
609
- b.screens((screens) => {
610
- screens.preview();
611
- });
612
- }, /Preview screen at index \d+ has no preceding Capture screen/i);
613
- });
614
-
615
- it("rejects empty partnerName when a consent screen is in the flow", () => {
616
- // partnerName feeds the consent attribution line; an empty
617
- // value renders blank, which partners typically don't notice
618
- // until QA. The rule fails the build instead.
619
- expectBuildInvalid((b) => {
620
- b.screens((screens) => {
621
- screens.consent();
622
- screens.instructions();
623
- });
624
- }, /partnerName cannot be empty/i);
625
- });
626
-
627
- it("rejects missing partnerIcon when a consent screen is in the flow", () => {
628
- expectBuildInvalid((b) => {
629
- b.screens((screens) => {
630
- screens.consent((c) => {
631
- c.partnerName = "Acme";
632
- c.partnerPrivacyPolicyUrl = "https://acme.com/privacy";
633
- });
634
- screens.instructions();
635
- });
636
- }, /partnerIcon is required for the consent screen/i);
637
- });
638
-
639
- it("rejects missing partnerPrivacyPolicyUrl when a consent screen is in the flow", () => {
640
- expectBuildInvalid((b) => {
641
- b.screens((screens) => {
642
- screens.consent((c) => {
643
- c.partnerName = "Acme";
644
- c.partnerIcon = "icon";
645
- });
646
- screens.instructions();
647
- });
648
- }, /partnerPrivacyPolicyUrl is required for the consent screen/i);
649
- });
650
-
651
- describe("non-capture jobType screen restrictions", () => {
652
- // Concrete scenario: Enhanced KYC and BVN are non-biometric job
653
- // types — they collect identity fields, not selfies / documents.
654
- // The validator therefore rejects any capture-pipeline screen
655
- // (capture / preview / instructions) when one of those job types
656
- // is configured, and requires a consent step plus a processing
657
- // step. Enhanced KYC additionally requires `enhancedKYCParams`.
658
-
659
- const VALID_CONSENT = Object.freeze({
660
- granted: true,
661
- grantedAt: "2026-04-30T00:00:00.000Z",
662
- noticeLanguage: "EN",
663
- noticePrivacyPolicyUrl: "https://example.test/p",
664
- });
665
-
666
- const VALID_ENHANCED_KYC_PARAMS = Object.freeze({
667
- idType: "NATIONAL_ID",
668
- idNumber: "1",
669
- country: "KE",
670
- });
671
-
672
- const VALID_USER_DETAILS = Object.freeze({
673
- givenNames: "John",
674
- lastName: "Doe",
675
- email: "john@example.test",
676
- });
677
-
678
- function withNonCaptureNetwork(
679
- b: UseSmileIDFlowBuilder,
680
- jobType: JobType,
681
- ): void {
682
- b.network((n) => {
683
- n.config((c) => {
684
- c.jobType = jobType;
685
- c.token = "k";
686
- c.partnerConfig((p) => {
687
- p.partnerId = "p";
688
- p.callbackUrl = "";
689
- p.useSandbox = true;
690
- });
691
- });
692
- });
693
- }
694
-
695
- it("rejects a Capture screen when jobType is enhancedKyc", () => {
696
- expectBuildInvalid((b) => {
697
- b.consentInformation = VALID_CONSENT;
698
- b.enhancedKYCParams = VALID_ENHANCED_KYC_PARAMS;
699
- b.userDetails = VALID_USER_DETAILS;
700
- b.screens((screens) => {
701
- screens.capture((c) => {
702
- c.captureType = CaptureType.selfie;
703
- });
704
- screens.processing();
705
- });
706
- withNonCaptureNetwork(b, JobType.enhancedKyc);
707
- }, /must only contain consent and processing screens, but found: capture/i);
708
- });
709
-
710
- it("rejects a Preview screen when jobType is enhancedKyc", () => {
711
- expectBuildInvalid((b) => {
712
- b.consentInformation = VALID_CONSENT;
713
- b.enhancedKYCParams = VALID_ENHANCED_KYC_PARAMS;
714
- b.userDetails = VALID_USER_DETAILS;
715
- b.screens((screens) => {
716
- screens.capture((c) => {
717
- c.captureType = CaptureType.selfie;
718
- });
719
- screens.preview();
720
- screens.processing();
721
- });
722
- withNonCaptureNetwork(b, JobType.enhancedKyc);
723
- }, /must only contain consent and processing screens, but found: capture, preview/i);
724
- });
725
-
726
- it("rejects an Instructions screen when jobType is enhancedKyc", () => {
727
- expectBuildInvalid((b) => {
728
- b.consentInformation = VALID_CONSENT;
729
- b.enhancedKYCParams = VALID_ENHANCED_KYC_PARAMS;
730
- b.userDetails = VALID_USER_DETAILS;
731
- b.screens((screens) => {
732
- screens.instructions();
733
- screens.processing();
734
- });
735
- withNonCaptureNetwork(b, JobType.enhancedKyc);
736
- }, /must only contain consent and processing screens, but found: instructions/i);
737
- });
738
-
739
- it("rejects a Capture screen when jobType is bvn", () => {
740
- expectBuildInvalid((b) => {
741
- b.consentInformation = VALID_CONSENT;
742
- b.enhancedKYCParams = VALID_ENHANCED_KYC_PARAMS;
743
- b.userDetails = VALID_USER_DETAILS;
744
- b.screens((screens) => {
745
- screens.capture((c) => {
746
- c.captureType = CaptureType.selfie;
747
- });
748
- screens.processing();
749
- });
750
- withNonCaptureNetwork(b, JobType.bvn);
751
- }, /must only contain consent and processing screens, but found: capture/i);
752
- });
753
-
754
- it("requires a processing() screen for enhancedKyc", () => {
755
- expectBuildInvalid((b) => {
756
- b.consentInformation = VALID_CONSENT;
757
- b.enhancedKYCParams = VALID_ENHANCED_KYC_PARAMS;
758
- b.userDetails = VALID_USER_DETAILS;
759
- b.screens((screens) => {
760
- // Intentionally no processing screen; the validator
761
- // surfaces a separate processing-required issue.
762
- screens.consent((c) => {
763
- c.partnerName = "Acme";
764
- c.partnerIcon = "icon";
765
- c.partnerPrivacyPolicyUrl = "https://acme.test/p";
766
- });
767
- });
768
- withNonCaptureNetwork(b, JobType.enhancedKyc);
769
- }, /Invalid configuration for EnhancedKyc: must include a Processing screen/i);
770
- });
771
-
772
- it("requires a consent step (screen or pre-supplied) for enhancedKyc", () => {
773
- expectBuildInvalid((b) => {
774
- b.enhancedKYCParams = VALID_ENHANCED_KYC_PARAMS;
775
- b.screens((screens) => {
776
- screens.processing();
777
- });
778
- withNonCaptureNetwork(b, JobType.enhancedKyc);
779
- }, /must include either a Consent screen or a pre-supplied consentInformation/i);
780
- });
781
-
782
- it("requires `enhancedKYCParams` when jobType is enhancedKyc", () => {
783
- expectBuildInvalid((b) => {
784
- b.consentInformation = VALID_CONSENT;
785
- b.screens((screens) => {
786
- screens.processing();
787
- });
788
- withNonCaptureNetwork(b, JobType.enhancedKyc);
789
- }, /enhancedKYCParams is required for EnhancedKyc jobs/i);
790
- });
791
-
792
- it("does NOT require enhancedKYCParams when jobType is bvn", () => {
793
- // BVN reuses the EnhancedKYC params shape but the validator
794
- // does not surface the missing-enhancedKYCParams rule for
795
- // bvn — the repository rejects the variant up front with an
796
- // "unsupported" error before params are inspected.
797
- const result = useSmileIDBuilder((b) => {
798
- b.consentInformation = VALID_CONSENT;
799
- b.screens((screens) => {
800
- screens.processing();
801
- });
802
- withNonCaptureNetwork(b, JobType.bvn);
803
- });
804
- const messages =
805
- result.kind === "invalid"
806
- ? result.validation.issues.map((i) => i.message).join(" || ")
807
- : "";
808
- expect(/enhancedKYCParams is required/i.test(messages)).toBe(false);
809
- });
810
- });
811
- });
812
-
813
- describe("validateConsent() in isolation", () => {
814
- // Partners pre-flight a `ConsentInformation` payload pulled from
815
- // their own storage before assigning it to `b.consentInformation`.
816
- // The method runs the same rules as the in-flow consent
817
- // validation but without requiring the rest of the builder state
818
- // to be set.
819
-
820
- it("returns Valid for a well-formed payload", () => {
821
- const builder = new UseSmileIDFlowBuilder();
822
- const state = builder.validateConsent({
823
- granted: true,
824
- grantedAt: "2026-01-01T00:00:00.000Z",
825
- noticeLanguage: "EN",
826
- noticePrivacyPolicyUrl: "https://example.test/privacy",
827
- });
828
- expect(state.valid).toBe(true);
829
- });
830
-
831
- it("returns Invalid with typed issues for malformed payload", async () => {
832
- const { InvalidConsentInformationException } =
833
- await import("../core/exception/consent_validation_exceptions");
834
- const builder = new UseSmileIDFlowBuilder();
835
- const state = builder.validateConsent({
836
- granted: false,
837
- // whitespace-only grantedAt — must trigger the non-blank
838
- // rule. A naive `!value` check would let this through and
839
- // the malformed payload would silently flow downstream.
840
- grantedAt: " ",
841
- noticeLanguage: "EN",
842
- noticePrivacyPolicyUrl: "https://example.test/p",
843
- });
844
- expect(state.valid).toBe(false);
845
- if (!state.valid) {
846
- const details = state.issues
847
- .filter(
848
- (e): e is InstanceType<typeof InvalidConsentInformationException> =>
849
- e instanceof InvalidConsentInformationException,
850
- )
851
- .map((e) => e.message);
852
- expect(details).toContain(
853
- "Invalid consent information: granted must be true",
854
- );
855
- expect(details).toContain(
856
- "Invalid consent information: grantedAt must not be blank",
857
- );
858
- }
859
- });
860
-
861
- it("does not depend on builder state — runs against the supplied payload only", () => {
862
- const builder = new UseSmileIDFlowBuilder();
863
- // Builder state is otherwise empty (would fail full validate()
864
- // on the empty-screens rule), but validateConsent() inspects
865
- // only the payload argument.
866
- const state = builder.validateConsent({
867
- granted: true,
868
- grantedAt: "2026-01-01T00:00:00.000Z",
869
- noticeLanguage: "EN",
870
- noticePrivacyPolicyUrl: "https://example.test/privacy",
871
- });
872
- expect(state.valid).toBe(true);
873
- });
874
- });
875
-
876
- describe("validateEnhancedKYCParams() / validateBiometricKYCParams() / validateUserDetails() in isolation", () => {
877
- // Partners pre-flight payloads (e.g. pulled from a form or a
878
- // remote config) before assigning to `b.enhancedKYCParams` /
879
- // `b.biometricKYCParams` / `b.userDetails`. KYC param rules cover
880
- // ID + country non-blank; UserDetails rules cover name fields
881
- // non-blank, and at least one of email / phoneNumber.
882
-
883
- it("validateEnhancedKYCParams accepts a well-formed payload", () => {
884
- const builder = new UseSmileIDFlowBuilder();
885
- const state = builder.validateEnhancedKYCParams({
886
- idType: "NATIONAL_ID",
887
- idNumber: "1234567890",
888
- country: "KE",
889
- });
890
- expect(state.valid).toBe(true);
891
- });
892
-
893
- it("validateEnhancedKYCParams rejects blank required fields", async () => {
894
- const { InvalidFieldValueException } =
895
- await import("../core/exception/job_validation_exceptions");
896
- const builder = new UseSmileIDFlowBuilder();
897
- const state = builder.validateEnhancedKYCParams({
898
- idType: "",
899
- idNumber: "",
900
- country: "",
901
- });
902
- expect(state.valid).toBe(false);
903
- if (!state.valid) {
904
- const reasons = state.issues
905
- .filter(
906
- (e): e is InstanceType<typeof InvalidFieldValueException> =>
907
- e instanceof InvalidFieldValueException,
908
- )
909
- .map((e) => e.message);
910
- // Each blank top-level field surfaces its own typed issue.
911
- expect(reasons.some((m) => /idType/.test(m))).toBe(true);
912
- expect(reasons.some((m) => /idNumber/.test(m))).toBe(true);
913
- expect(reasons.some((m) => /country/.test(m))).toBe(true);
914
- }
915
- });
916
-
917
- it("validateUserDetails rejects payload missing both email and phoneNumber", () => {
918
- const builder = new UseSmileIDFlowBuilder();
919
- const state = builder.validateUserDetails({
920
- givenNames: "Ada",
921
- lastName: "Lovelace",
922
- });
923
- expect(state.valid).toBe(false);
924
- if (!state.valid) {
925
- const matched = state.issues.some((i) =>
926
- /at least one of email or phoneNumber/.test(i.message),
927
- );
928
- expect(matched).toBe(true);
929
- }
930
- });
931
-
932
- it("validateUserDetails accepts a well-formed payload", () => {
933
- const builder = new UseSmileIDFlowBuilder();
934
- const state = builder.validateUserDetails({
935
- givenNames: "Ada",
936
- lastName: "Lovelace",
937
- email: "ada@example.test",
938
- });
939
- expect(state.valid).toBe(true);
940
- });
941
-
942
- it("validateBiometricKYCParams accepts a well-formed payload (no userDetails on the params type)", () => {
943
- // userDetails moved to a top-level builder field — params no
944
- // longer carries it.
945
- const builder = new UseSmileIDFlowBuilder();
946
- const state = builder.validateBiometricKYCParams({
947
- idType: "NATIONAL_ID",
948
- idNumber: "1234567890",
949
- country: "KE",
950
- useEnrolledImage: false,
951
- });
952
- expect(state.valid).toBe(true);
953
- });
954
-
955
- it("validateDocumentVerificationParams accepts a country-only payload (idType optional)", () => {
956
- const builder = new UseSmileIDFlowBuilder();
957
- expect(
958
- builder.validateDocumentVerificationParams({ country: "KE" }).valid,
959
- ).toBe(true);
960
- });
961
-
962
- it("validateDocumentVerificationParams rejects a blank country", () => {
963
- const builder = new UseSmileIDFlowBuilder();
964
- expect(
965
- builder.validateDocumentVerificationParams({ country: " " }).valid,
966
- ).toBe(false);
967
- });
968
-
969
- it("validateEnhancedDocumentVerificationParams requires both country and idType", () => {
970
- const builder = new UseSmileIDFlowBuilder();
971
- expect(
972
- builder.validateEnhancedDocumentVerificationParams({
973
- country: "KE",
974
- idType: "",
975
- }).valid,
976
- ).toBe(false);
977
- expect(
978
- builder.validateEnhancedDocumentVerificationParams({
979
- country: "KE",
980
- idType: "NATIONAL_ID",
981
- }).valid,
982
- ).toBe(true);
983
- });
984
- });
985
-
986
- describe("typed exception hierarchy", () => {
987
- it("build() returns the typed exception itself in validation, not a wrapping Error", async () => {
988
- const { EmptyScreensBlockException } =
989
- await import("../core/exception/screen_config_validation_exceptions");
990
- const result = useSmileIDBuilder(() => {});
991
- expect(result.kind).toBe("invalid");
992
- if (result.kind === "invalid") {
993
- expect(result.validation.issues[0]).toBeInstanceOf(
994
- EmptyScreensBlockException,
995
- );
996
- }
997
- });
998
-
999
- it("validation exceptions extend UseSmileIDBuilderException → UseSmileIDValidationException → UseSmileIDException", async () => {
1000
- const { UseSmileIDBuilderException } =
1001
- await import("../core/exception/use_smile_id_builder_exception");
1002
- const { UseSmileIDValidationException } =
1003
- await import("../core/exception/use_smile_id_validation_exception");
1004
- const { UseSmileIDException } =
1005
- await import("../core/exception/use_smile_id_exception");
1006
- const result = useSmileIDBuilder(() => {});
1007
- expect(result.kind).toBe("invalid");
1008
- if (result.kind === "invalid") {
1009
- const issue = result.validation.issues[0];
1010
- expect(issue).toBeInstanceOf(UseSmileIDBuilderException);
1011
- expect(issue).toBeInstanceOf(UseSmileIDValidationException);
1012
- expect(issue).toBeInstanceOf(UseSmileIDException);
1013
- expect(issue).toBeInstanceOf(Error);
1014
- }
1015
- });
1016
-
1017
- it("validation exceptions carry typed errorCode + severity + suggestedFix + name", async () => {
1018
- const { EmptyScreensBlockException } =
1019
- await import("../core/exception/screen_config_validation_exceptions");
1020
- const { UseSmileIDErrorCode } =
1021
- await import("../core/exception/use_smile_id_error_code");
1022
- const result = useSmileIDBuilder(() => {});
1023
- expect(result.kind).toBe("invalid");
1024
- if (result.kind === "invalid") {
1025
- const issue = result.validation.issues[0];
1026
- if (!(issue instanceof EmptyScreensBlockException))
1027
- throw new Error("wrong type");
1028
- expect(issue.errorCode).toBe(
1029
- UseSmileIDErrorCode.Builder.EmptyScreensBlock,
1030
- );
1031
- expect(issue.severity).toBe("error");
1032
- expect(typeof issue.suggestedFix).toBe("string");
1033
- expect(issue.name).toBe("EmptyScreensBlockException");
1034
- }
1035
- });
1036
-
1037
- it("validate() returns issues as the same typed exception instances build() would throw", async () => {
1038
- const { EmptyScreensBlockException } =
1039
- await import("../core/exception/screen_config_validation_exceptions");
1040
- const builder = new UseSmileIDFlowBuilder();
1041
- const state = builder.validate();
1042
- expect(state.valid).toBe(false);
1043
- if (!state.valid) {
1044
- expect(state.issues[0]).toBeInstanceOf(EmptyScreensBlockException);
1045
- }
1046
- });
1047
- });
1048
-
1049
- describe("top-level mutable properties", () => {
1050
- it("captures consentInformation, onResult, onAnalyticsEvent", () => {
1051
- const onResult = vi.fn();
1052
- const onAnalyticsEvent = vi.fn();
1053
- const consentInformation = {
1054
- granted: true,
1055
- grantedAt: "2024-01-01T00:00:00.000Z",
1056
- noticeLanguage: "EN",
1057
- noticePrivacyPolicyUrl: "https://example.test/privacy",
1058
- };
1059
- const config = buildOk((b) => {
1060
- b.consentInformation = consentInformation;
1061
- b.onResult = onResult;
1062
- b.onAnalyticsEvent = onAnalyticsEvent;
1063
- withMinimalScreens(b);
1064
- });
1065
- expect(config.consentInformation).toEqual(consentInformation);
1066
- expect(config.onResult).toBe(onResult);
1067
- expect(config.onAnalyticsEvent).toBe(onAnalyticsEvent);
1068
- });
1069
-
1070
- it("defaults onResult to a no-op when the partner does not set it", () => {
1071
- const config = buildOk((b) => {
1072
- withMinimalScreens(b);
1073
- });
1074
- // onResult is non-nullable on the snapshot, so calling it must
1075
- // never throw. Concrete scenario: the SDK invokes onResult on
1076
- // every flow exit; a partner who skipped wiring a handler would
1077
- // have crashed before this default.
1078
- expect(() =>
1079
- config.onResult({
1080
- status: "success",
1081
- value: { userId: "", jobId: "", status: "", message: "" },
1082
- }),
1083
- ).not.toThrow();
1084
- });
1085
- });
1086
-
1087
- it("omits absent optional blocks entirely — exactOptionalPropertyTypes contract", () => {
1088
- // Concrete scenario: with `exactOptionalPropertyTypes: true`,
1089
- // omitting `b.network(...)` must NOT result in
1090
- // `snapshot.network = undefined` — the key must be absent
1091
- // outright. A future refactor that emits `undefined` would
1092
- // silently break partners running TS strict.
1093
- const config = buildOk((b) => {
1094
- withMinimalScreens(b);
1095
- });
1096
- expect("network" in config).toBe(false);
1097
- expect("ml" in config).toBe(false);
1098
- expect("config" in config).toBe(false);
1099
- expect("theme" in config).toBe(false);
1100
- expect("consentInformation" in config).toBe(false);
1101
- expect("enhancedKYCParams" in config).toBe(false);
1102
- expect("biometricKYCParams" in config).toBe(false);
1103
- expect("onAnalyticsEvent" in config).toBe(false);
1104
- // `screens` and `onResult` are always present (build() guarantees).
1105
- expect("screens" in config).toBe(true);
1106
- expect("onResult" in config).toBe(true);
1107
- });
1108
-
1109
- describe("BuilderValidationException", () => {
1110
- it("carries the full ValidationStateInvalid for partner inspection", async () => {
1111
- const { BuilderValidationException } =
1112
- await import("../core/exception/builder_validation_exception");
1113
- const { EmptyScreensBlockException } =
1114
- await import("../core/exception/screen_config_validation_exceptions");
1115
- const { UseSmileIDBuilderException } =
1116
- await import("../core/exception/use_smile_id_builder_exception");
1117
- const { UseSmileIDValidationException } =
1118
- await import("../core/exception/use_smile_id_validation_exception");
1119
-
1120
- const exception = new BuilderValidationException({
1121
- valid: false,
1122
- issues: [new EmptyScreensBlockException()],
1123
- });
1124
-
1125
- // Hierarchy assertions — partners catching one of the abstract
1126
- // bases must see this concrete exception.
1127
- expect(exception).toBeInstanceOf(UseSmileIDBuilderException);
1128
- expect(exception).toBeInstanceOf(UseSmileIDValidationException);
1129
- expect(exception).toBeInstanceOf(Error);
1130
-
1131
- // Payload — full state, not just primaryIssue.
1132
- expect(exception.validationState.issues).toHaveLength(1);
1133
- expect(exception.validationState.issues[0]).toBeInstanceOf(
1134
- EmptyScreensBlockException,
1135
- );
1136
- expect(exception.message).toMatch(/Flow validation failed/i);
1137
- });
1138
- });
1139
-
1140
- describe("UseSmileIDFlowBuilder.validate — builder-only scope", () => {
1141
- it("reports empty-screens as the only triage rule", async () => {
1142
- const { EmptyScreensBlockException } =
1143
- await import("../core/exception/screen_config_validation_exceptions");
1144
- const builder = new UseSmileIDFlowBuilder();
1145
- const state = builder.validate();
1146
- expect(state.valid).toBe(false);
1147
- if (!state.valid) {
1148
- expect(state.issues[0]).toBeInstanceOf(EmptyScreensBlockException);
1149
- }
1150
- });
1151
-
1152
- it("returns Valid when at least one screen is registered — even with missing-ml warnings", () => {
1153
- // Full validator would flag missing-ml as a warning here, but
1154
- // builder.validate() is intentionally narrowed to the
1155
- // empty-screens triage. Full validation runs inside build().
1156
- const builder = new UseSmileIDFlowBuilder();
1157
- builder.screens((screens) =>
1158
- screens.capture((c) => {
1159
- c.captureType = CaptureType.selfie;
1160
- }),
1161
- );
1162
- expect(builder.validate().valid).toBe(true);
1163
- });
1164
- });
1165
- });