@smileid/usesmileid 12.0.0-beta01 → 12.0.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 (556) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +701 -89
  3. package/dist/camera/camera_defaults.d.ts +14 -9
  4. package/dist/camera/camera_defaults.d.ts.map +1 -1
  5. package/dist/camera/camera_defaults.js +11 -9
  6. package/dist/camera/camera_defaults.js.map +1 -1
  7. package/dist/camera/orientation_degrees.d.ts +5 -6
  8. package/dist/camera/orientation_degrees.d.ts.map +1 -1
  9. package/dist/camera/orientation_degrees.js +5 -6
  10. package/dist/camera/orientation_degrees.js.map +1 -1
  11. package/dist/core/exception/agent_mode_with_enhanced_liveness_exception.d.ts +11 -0
  12. package/dist/core/exception/agent_mode_with_enhanced_liveness_exception.d.ts.map +1 -0
  13. package/dist/core/exception/agent_mode_with_enhanced_liveness_exception.js +17 -0
  14. package/dist/core/exception/agent_mode_with_enhanced_liveness_exception.js.map +1 -0
  15. package/dist/core/exception/capture_validation_exceptions.d.ts +1 -0
  16. package/dist/core/exception/capture_validation_exceptions.d.ts.map +1 -1
  17. package/dist/core/exception/capture_validation_exceptions.js +1 -0
  18. package/dist/core/exception/capture_validation_exceptions.js.map +1 -1
  19. package/dist/core/exception/index.d.ts +1 -0
  20. package/dist/core/exception/index.d.ts.map +1 -1
  21. package/dist/core/exception/index.js +1 -0
  22. package/dist/core/exception/index.js.map +1 -1
  23. package/dist/core/exception/use_smile_id_error_code.d.ts +1 -0
  24. package/dist/core/exception/use_smile_id_error_code.d.ts.map +1 -1
  25. package/dist/core/exception/use_smile_id_error_code.js +1 -0
  26. package/dist/core/exception/use_smile_id_error_code.js.map +1 -1
  27. package/dist/core/models/config.d.ts +19 -0
  28. package/dist/core/models/config.d.ts.map +1 -1
  29. package/dist/core/models/document_capture_mode.d.ts +8 -0
  30. package/dist/core/models/document_capture_mode.d.ts.map +1 -1
  31. package/dist/core/models/document_capture_mode.js +24 -0
  32. package/dist/core/models/document_capture_mode.js.map +1 -1
  33. package/dist/core/models/document_type.d.ts +2 -2
  34. package/dist/core/models/document_type.d.ts.map +1 -1
  35. package/dist/core/models/document_type.js +7 -5
  36. package/dist/core/models/document_type.js.map +1 -1
  37. package/dist/core/models/global_privacy_control.d.ts +36 -0
  38. package/dist/core/models/global_privacy_control.d.ts.map +1 -0
  39. package/dist/core/models/global_privacy_control.js +39 -0
  40. package/dist/core/models/global_privacy_control.js.map +1 -0
  41. package/dist/core/models/network_config.d.ts +2 -2
  42. package/dist/core/models/network_config.js +2 -2
  43. package/dist/core/models/result.d.ts +9 -8
  44. package/dist/core/models/result.d.ts.map +1 -1
  45. package/dist/core/models/result.js +5 -6
  46. package/dist/core/models/result.js.map +1 -1
  47. package/dist/data/api/interceptors/smile_auth_interceptor.d.ts.map +1 -1
  48. package/dist/data/api/interceptors/smile_auth_interceptor.js +3 -17
  49. package/dist/data/api/interceptors/smile_auth_interceptor.js.map +1 -1
  50. package/dist/data/api/interceptors/smile_integrity_interceptor.d.ts +11 -0
  51. package/dist/data/api/interceptors/smile_integrity_interceptor.d.ts.map +1 -1
  52. package/dist/data/api/interceptors/smile_integrity_interceptor.js +13 -0
  53. package/dist/data/api/interceptors/smile_integrity_interceptor.js.map +1 -1
  54. package/dist/data/api/interceptors/smile_request_mac_interceptor.d.ts +8 -0
  55. package/dist/data/api/interceptors/smile_request_mac_interceptor.d.ts.map +1 -1
  56. package/dist/data/api/interceptors/smile_request_mac_interceptor.js +11 -0
  57. package/dist/data/api/interceptors/smile_request_mac_interceptor.js.map +1 -1
  58. package/dist/data/api/smile_id_api.d.ts +1 -1
  59. package/dist/data/api/smile_id_api.d.ts.map +1 -1
  60. package/dist/data/compression/compressible_asset.d.ts +41 -0
  61. package/dist/data/compression/compressible_asset.d.ts.map +1 -0
  62. package/dist/data/compression/compressible_asset.js +34 -0
  63. package/dist/data/compression/compressible_asset.js.map +1 -0
  64. package/dist/data/compression/payload_compression_config.d.ts +36 -0
  65. package/dist/data/compression/payload_compression_config.d.ts.map +1 -0
  66. package/dist/data/compression/payload_compression_config.js +52 -0
  67. package/dist/data/compression/payload_compression_config.js.map +1 -0
  68. package/dist/data/compression/payload_compression_runner.d.ts +29 -0
  69. package/dist/data/compression/payload_compression_runner.d.ts.map +1 -0
  70. package/dist/data/compression/payload_compression_runner.js +55 -0
  71. package/dist/data/compression/payload_compression_runner.js.map +1 -0
  72. package/dist/data/compression/payload_compressor.d.ts +40 -0
  73. package/dist/data/compression/payload_compressor.d.ts.map +1 -0
  74. package/dist/data/compression/payload_compressor.js +126 -0
  75. package/dist/data/compression/payload_compressor.js.map +1 -0
  76. package/dist/data/compression/uri_compressible_asset.d.ts +23 -0
  77. package/dist/data/compression/uri_compressible_asset.d.ts.map +1 -0
  78. package/dist/data/compression/uri_compressible_asset.js +77 -0
  79. package/dist/data/compression/uri_compressible_asset.js.map +1 -0
  80. package/dist/data/dsl/builder/cache_config_builder.d.ts +2 -1
  81. package/dist/data/dsl/builder/cache_config_builder.d.ts.map +1 -1
  82. package/dist/data/dsl/builder/cache_config_builder.js +2 -1
  83. package/dist/data/dsl/builder/cache_config_builder.js.map +1 -1
  84. package/dist/data/dsl/builder/config_builder.d.ts +40 -14
  85. package/dist/data/dsl/builder/config_builder.d.ts.map +1 -1
  86. package/dist/data/dsl/builder/config_builder.js +40 -14
  87. package/dist/data/dsl/builder/config_builder.js.map +1 -1
  88. package/dist/data/dsl/builder/interceptor_config_builder.d.ts +9 -7
  89. package/dist/data/dsl/builder/interceptor_config_builder.d.ts.map +1 -1
  90. package/dist/data/dsl/builder/interceptor_config_builder.js +9 -7
  91. package/dist/data/dsl/builder/interceptor_config_builder.js.map +1 -1
  92. package/dist/data/dsl/builder/retry_config_builder.d.ts +19 -4
  93. package/dist/data/dsl/builder/retry_config_builder.d.ts.map +1 -1
  94. package/dist/data/dsl/builder/retry_config_builder.js +21 -6
  95. package/dist/data/dsl/builder/retry_config_builder.js.map +1 -1
  96. package/dist/data/dsl/builder/timeout_config_builder.d.ts +4 -0
  97. package/dist/data/dsl/builder/timeout_config_builder.d.ts.map +1 -1
  98. package/dist/data/dsl/builder/timeout_config_builder.js +4 -0
  99. package/dist/data/dsl/builder/timeout_config_builder.js.map +1 -1
  100. package/dist/data/dsl/use_smile_id_network_builder.d.ts +17 -0
  101. package/dist/data/dsl/use_smile_id_network_builder.d.ts.map +1 -1
  102. package/dist/data/dsl/use_smile_id_network_builder.js +17 -0
  103. package/dist/data/dsl/use_smile_id_network_builder.js.map +1 -1
  104. package/dist/data/factory/networking_factory.d.ts.map +1 -1
  105. package/dist/data/factory/networking_factory.js +11 -1
  106. package/dist/data/factory/networking_factory.js.map +1 -1
  107. package/dist/data/repository/use_smile_id_repository_impl.d.ts +6 -0
  108. package/dist/data/repository/use_smile_id_repository_impl.d.ts.map +1 -1
  109. package/dist/data/repository/use_smile_id_repository_impl.js +82 -8
  110. package/dist/data/repository/use_smile_id_repository_impl.js.map +1 -1
  111. package/dist/data/security/request_canonicalizer.d.ts.map +1 -1
  112. package/dist/data/security/request_canonicalizer.js +14 -2
  113. package/dist/data/security/request_canonicalizer.js.map +1 -1
  114. package/dist/data/security/security_policy.d.ts +43 -0
  115. package/dist/data/security/security_policy.d.ts.map +1 -0
  116. package/dist/data/security/security_policy.js +61 -0
  117. package/dist/data/security/security_policy.js.map +1 -0
  118. package/dist/data/smile_id_urls.d.ts +1 -1
  119. package/dist/data/smile_id_urls.js +1 -1
  120. package/dist/data/smile_id_urls.js.map +1 -1
  121. package/dist/data/util/retry_util.d.ts +2 -2
  122. package/dist/data/util/retry_util.d.ts.map +1 -1
  123. package/dist/data/util/retry_util.js +7 -1
  124. package/dist/data/util/retry_util.js.map +1 -1
  125. package/dist/data/util/use_smile_id_token_decoder.d.ts +22 -0
  126. package/dist/data/util/use_smile_id_token_decoder.d.ts.map +1 -1
  127. package/dist/data/util/use_smile_id_token_decoder.js +58 -24
  128. package/dist/data/util/use_smile_id_token_decoder.js.map +1 -1
  129. package/dist/index.d.ts +2 -2
  130. package/dist/index.d.ts.map +1 -1
  131. package/dist/index.js +2 -2
  132. package/dist/index.js.map +1 -1
  133. package/dist/l10n/strings_en.d.ts +2 -1
  134. package/dist/l10n/strings_en.d.ts.map +1 -1
  135. package/dist/l10n/strings_en.js +2 -1
  136. package/dist/l10n/strings_en.js.map +1 -1
  137. package/dist/l10n/use_smile_id_localizations.d.ts +1 -0
  138. package/dist/l10n/use_smile_id_localizations.d.ts.map +1 -1
  139. package/dist/l10n/use_smile_id_localizations.js +3 -0
  140. package/dist/l10n/use_smile_id_localizations.js.map +1 -1
  141. package/dist/metadata/builder_configuration.d.ts +44 -0
  142. package/dist/metadata/builder_configuration.d.ts.map +1 -0
  143. package/dist/metadata/builder_configuration.js +35 -0
  144. package/dist/metadata/builder_configuration.js.map +1 -0
  145. package/dist/metadata/captured_image_properties.d.ts +11 -0
  146. package/dist/metadata/captured_image_properties.d.ts.map +1 -0
  147. package/dist/metadata/captured_image_properties.js +11 -0
  148. package/dist/metadata/captured_image_properties.js.map +1 -0
  149. package/dist/metadata/device_orientation_collector.d.ts +17 -0
  150. package/dist/metadata/device_orientation_collector.d.ts.map +1 -0
  151. package/dist/metadata/device_orientation_collector.js +66 -0
  152. package/dist/metadata/device_orientation_collector.js.map +1 -0
  153. package/dist/metadata/geolocation.d.ts +20 -0
  154. package/dist/metadata/geolocation.d.ts.map +1 -0
  155. package/dist/metadata/geolocation.js +40 -0
  156. package/dist/metadata/geolocation.js.map +1 -0
  157. package/dist/metadata/metadata_configuration_mappers.d.ts +47 -0
  158. package/dist/metadata/metadata_configuration_mappers.d.ts.map +1 -0
  159. package/dist/metadata/metadata_configuration_mappers.js +178 -0
  160. package/dist/metadata/metadata_configuration_mappers.js.map +1 -0
  161. package/dist/metadata/model_configuration.d.ts +41 -0
  162. package/dist/metadata/model_configuration.d.ts.map +1 -0
  163. package/dist/metadata/model_configuration.js +44 -0
  164. package/dist/metadata/model_configuration.js.map +1 -0
  165. package/dist/metadata/optional_native_modules.d.ts +79 -3
  166. package/dist/metadata/optional_native_modules.d.ts.map +1 -1
  167. package/dist/metadata/optional_native_modules.js +108 -3
  168. package/dist/metadata/optional_native_modules.js.map +1 -1
  169. package/dist/metadata/use_smile_id_metadata.d.ts +45 -7
  170. package/dist/metadata/use_smile_id_metadata.d.ts.map +1 -1
  171. package/dist/metadata/use_smile_id_metadata.js +85 -13
  172. package/dist/metadata/use_smile_id_metadata.js.map +1 -1
  173. package/dist/metadata/use_smile_id_metadata_factory.d.ts +37 -0
  174. package/dist/metadata/use_smile_id_metadata_factory.d.ts.map +1 -1
  175. package/dist/metadata/use_smile_id_metadata_factory.js +197 -16
  176. package/dist/metadata/use_smile_id_metadata_factory.js.map +1 -1
  177. package/dist/presentation/assets/svg/document_shimmer_strings.d.ts +14 -0
  178. package/dist/presentation/assets/svg/document_shimmer_strings.d.ts.map +1 -0
  179. package/dist/presentation/assets/svg/document_shimmer_strings.js +14 -0
  180. package/dist/presentation/assets/svg/document_shimmer_strings.js.map +1 -0
  181. package/dist/presentation/assets/svg/instruction_svg_strings.d.ts +12 -4
  182. package/dist/presentation/assets/svg/instruction_svg_strings.d.ts.map +1 -1
  183. package/dist/presentation/assets/svg/instruction_svg_strings.js +19 -8
  184. package/dist/presentation/assets/svg/instruction_svg_strings.js.map +1 -1
  185. package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.d.ts +0 -5
  186. package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.d.ts.map +1 -1
  187. package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.js +0 -5
  188. package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.js.map +1 -1
  189. package/dist/presentation/components/icons/index.d.ts +24 -8
  190. package/dist/presentation/components/icons/index.d.ts.map +1 -1
  191. package/dist/presentation/components/icons/index.js +31 -11
  192. package/dist/presentation/components/icons/index.js.map +1 -1
  193. package/dist/presentation/components/use_smile_id_attribution.d.ts +1 -1
  194. package/dist/presentation/components/use_smile_id_button.d.ts +2 -2
  195. package/dist/presentation/components/use_smile_id_button.js +4 -4
  196. package/dist/presentation/components/use_smile_id_button.js.map +1 -1
  197. package/dist/presentation/components/use_smile_id_capture_content.d.ts +13 -0
  198. package/dist/presentation/components/use_smile_id_capture_content.d.ts.map +1 -1
  199. package/dist/presentation/components/use_smile_id_capture_content.js +15 -9
  200. package/dist/presentation/components/use_smile_id_capture_content.js.map +1 -1
  201. package/dist/presentation/components/use_smile_id_captured_document_image.d.ts +2 -3
  202. package/dist/presentation/components/use_smile_id_captured_document_image.d.ts.map +1 -1
  203. package/dist/presentation/components/use_smile_id_captured_document_image.js +1 -3
  204. package/dist/presentation/components/use_smile_id_captured_document_image.js.map +1 -1
  205. package/dist/presentation/components/use_smile_id_document_capture_controls.d.ts +12 -6
  206. package/dist/presentation/components/use_smile_id_document_capture_controls.d.ts.map +1 -1
  207. package/dist/presentation/components/use_smile_id_document_capture_controls.js +59 -16
  208. package/dist/presentation/components/use_smile_id_document_capture_controls.js.map +1 -1
  209. package/dist/presentation/components/use_smile_id_document_overlay.d.ts +22 -5
  210. package/dist/presentation/components/use_smile_id_document_overlay.d.ts.map +1 -1
  211. package/dist/presentation/components/use_smile_id_document_overlay.js +80 -40
  212. package/dist/presentation/components/use_smile_id_document_overlay.js.map +1 -1
  213. package/dist/presentation/components/use_smile_id_document_shimmer.d.ts +15 -0
  214. package/dist/presentation/components/use_smile_id_document_shimmer.d.ts.map +1 -0
  215. package/dist/presentation/components/use_smile_id_document_shimmer.js +23 -0
  216. package/dist/presentation/components/use_smile_id_document_shimmer.js.map +1 -0
  217. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.d.ts +5 -2
  218. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.d.ts.map +1 -1
  219. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.js +9 -6
  220. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.js.map +1 -1
  221. package/dist/presentation/components/use_smile_id_guideline_thumbnail.d.ts.map +1 -1
  222. package/dist/presentation/components/use_smile_id_guideline_thumbnail.js +84 -1
  223. package/dist/presentation/components/use_smile_id_guideline_thumbnail.js.map +1 -1
  224. package/dist/presentation/components/use_smile_id_instructions_hero.d.ts +3 -1
  225. package/dist/presentation/components/use_smile_id_instructions_hero.d.ts.map +1 -1
  226. package/dist/presentation/components/use_smile_id_instructions_hero.js +25 -5
  227. package/dist/presentation/components/use_smile_id_instructions_hero.js.map +1 -1
  228. package/dist/presentation/components/use_smile_id_oval_border_palette.d.ts.map +1 -1
  229. package/dist/presentation/components/use_smile_id_oval_border_palette.js +7 -3
  230. package/dist/presentation/components/use_smile_id_oval_border_palette.js.map +1 -1
  231. package/dist/presentation/flow/dsl/builder/config_builder.d.ts +28 -0
  232. package/dist/presentation/flow/dsl/builder/config_builder.d.ts.map +1 -1
  233. package/dist/presentation/flow/dsl/builder/config_builder.js +30 -0
  234. package/dist/presentation/flow/dsl/builder/config_builder.js.map +1 -1
  235. package/dist/presentation/flow/dsl/builder/ml_builder.d.ts +13 -4
  236. package/dist/presentation/flow/dsl/builder/ml_builder.d.ts.map +1 -1
  237. package/dist/presentation/flow/dsl/builder/ml_builder.js +3 -2
  238. package/dist/presentation/flow/dsl/builder/ml_builder.js.map +1 -1
  239. package/dist/presentation/flow/dsl/builder/screens_builder.d.ts +110 -12
  240. package/dist/presentation/flow/dsl/builder/screens_builder.d.ts.map +1 -1
  241. package/dist/presentation/flow/dsl/builder/screens_builder.js +110 -12
  242. package/dist/presentation/flow/dsl/builder/screens_builder.js.map +1 -1
  243. package/dist/presentation/flow/dsl/builder/theme_builder.d.ts +15 -2
  244. package/dist/presentation/flow/dsl/builder/theme_builder.d.ts.map +1 -1
  245. package/dist/presentation/flow/dsl/builder/theme_builder.js +15 -2
  246. package/dist/presentation/flow/dsl/builder/theme_builder.js.map +1 -1
  247. package/dist/presentation/flow/dsl/use_smile_id_builder.d.ts +6 -4
  248. package/dist/presentation/flow/dsl/use_smile_id_builder.d.ts.map +1 -1
  249. package/dist/presentation/flow/dsl/use_smile_id_builder.js.map +1 -1
  250. package/dist/presentation/flow/dsl/use_smile_id_flow_builder.d.ts +62 -36
  251. package/dist/presentation/flow/dsl/use_smile_id_flow_builder.d.ts.map +1 -1
  252. package/dist/presentation/flow/dsl/use_smile_id_flow_builder.js +62 -36
  253. package/dist/presentation/flow/dsl/use_smile_id_flow_builder.js.map +1 -1
  254. package/dist/presentation/flow/flow_navigation_manager.d.ts +44 -5
  255. package/dist/presentation/flow/flow_navigation_manager.d.ts.map +1 -1
  256. package/dist/presentation/flow/flow_navigation_manager.js +148 -11
  257. package/dist/presentation/flow/flow_navigation_manager.js.map +1 -1
  258. package/dist/presentation/flow/model/instruction_guideline.d.ts +9 -0
  259. package/dist/presentation/flow/model/instruction_guideline.d.ts.map +1 -1
  260. package/dist/presentation/flow/model/instructions_defaults.d.ts +11 -2
  261. package/dist/presentation/flow/model/instructions_defaults.d.ts.map +1 -1
  262. package/dist/presentation/flow/model/instructions_defaults.js +74 -26
  263. package/dist/presentation/flow/model/instructions_defaults.js.map +1 -1
  264. package/dist/presentation/flow/screen/orchestrated_capture_screen.d.ts.map +1 -1
  265. package/dist/presentation/flow/screen/orchestrated_capture_screen.js +48 -14
  266. package/dist/presentation/flow/screen/orchestrated_capture_screen.js.map +1 -1
  267. package/dist/presentation/flow/screen/orchestrated_consent_screen.d.ts.map +1 -1
  268. package/dist/presentation/flow/screen/orchestrated_consent_screen.js +3 -1
  269. package/dist/presentation/flow/screen/orchestrated_consent_screen.js.map +1 -1
  270. package/dist/presentation/flow/screen/orchestrated_instructions_screen.js +1 -1
  271. package/dist/presentation/flow/screen/orchestrated_instructions_screen.js.map +1 -1
  272. package/dist/presentation/flow/screen/orchestrated_preview_screen.d.ts.map +1 -1
  273. package/dist/presentation/flow/screen/orchestrated_preview_screen.js +3 -9
  274. package/dist/presentation/flow/screen/orchestrated_preview_screen.js.map +1 -1
  275. package/dist/presentation/flow/screen/orchestrated_processing_screen.js +3 -3
  276. package/dist/presentation/flow/screen/orchestrated_processing_screen.js.map +1 -1
  277. package/dist/presentation/flow/use_smile_id_flow.d.ts.map +1 -1
  278. package/dist/presentation/flow/use_smile_id_flow.js +10 -4
  279. package/dist/presentation/flow/use_smile_id_flow.js.map +1 -1
  280. package/dist/presentation/flow/validation/flow_validator.d.ts.map +1 -1
  281. package/dist/presentation/flow/validation/flow_validator.js +42 -20
  282. package/dist/presentation/flow/validation/flow_validator.js.map +1 -1
  283. package/dist/presentation/flow/validation/job_type_validator.d.ts.map +1 -1
  284. package/dist/presentation/flow/validation/job_type_validator.js +14 -0
  285. package/dist/presentation/flow/validation/job_type_validator.js.map +1 -1
  286. package/dist/presentation/screen/helpers/capture_screen_helpers.d.ts.map +1 -1
  287. package/dist/presentation/screen/helpers/capture_screen_helpers.js +1 -0
  288. package/dist/presentation/screen/helpers/capture_screen_helpers.js.map +1 -1
  289. package/dist/presentation/screen/helpers/capture_ui_state.d.ts +6 -6
  290. package/dist/presentation/screen/helpers/capture_ui_state.d.ts.map +1 -1
  291. package/dist/presentation/screen/helpers/capture_ui_state.js +19 -19
  292. package/dist/presentation/screen/helpers/capture_ui_state.js.map +1 -1
  293. package/dist/presentation/screen/helpers/ess_turn_haptics.d.ts +2 -2
  294. package/dist/presentation/screen/helpers/ess_turn_haptics.d.ts.map +1 -1
  295. package/dist/presentation/screen/helpers/ess_turn_haptics.js +6 -6
  296. package/dist/presentation/screen/helpers/ess_turn_haptics.js.map +1 -1
  297. package/dist/presentation/screen/helpers/instructions_screen_helpers.d.ts +1 -0
  298. package/dist/presentation/screen/helpers/instructions_screen_helpers.d.ts.map +1 -1
  299. package/dist/presentation/screen/helpers/instructions_screen_helpers.js +6 -2
  300. package/dist/presentation/screen/helpers/instructions_screen_helpers.js.map +1 -1
  301. package/dist/presentation/screen/helpers/scan_state_to_overlay_state.d.ts +5 -5
  302. package/dist/presentation/screen/helpers/scan_state_to_overlay_state.d.ts.map +1 -1
  303. package/dist/presentation/screen/helpers/scan_state_to_overlay_state.js +14 -11
  304. package/dist/presentation/screen/helpers/scan_state_to_overlay_state.js.map +1 -1
  305. package/dist/presentation/screen/helpers/use_capture_orientation_lock.d.ts +13 -3
  306. package/dist/presentation/screen/helpers/use_capture_orientation_lock.d.ts.map +1 -1
  307. package/dist/presentation/screen/helpers/use_capture_orientation_lock.js +48 -6
  308. package/dist/presentation/screen/helpers/use_capture_orientation_lock.js.map +1 -1
  309. package/dist/presentation/screen/use_smile_id_capture_screen.d.ts +21 -3
  310. package/dist/presentation/screen/use_smile_id_capture_screen.d.ts.map +1 -1
  311. package/dist/presentation/screen/use_smile_id_capture_screen.js +188 -32
  312. package/dist/presentation/screen/use_smile_id_capture_screen.js.map +1 -1
  313. package/dist/presentation/screen/use_smile_id_consent_screen.d.ts +7 -0
  314. package/dist/presentation/screen/use_smile_id_consent_screen.d.ts.map +1 -1
  315. package/dist/presentation/screen/use_smile_id_consent_screen.js +6 -5
  316. package/dist/presentation/screen/use_smile_id_consent_screen.js.map +1 -1
  317. package/dist/presentation/screen/use_smile_id_document_back_instructions.d.ts.map +1 -1
  318. package/dist/presentation/screen/use_smile_id_document_back_instructions.js +5 -13
  319. package/dist/presentation/screen/use_smile_id_document_back_instructions.js.map +1 -1
  320. package/dist/presentation/screen/use_smile_id_document_preview_screen.d.ts +2 -3
  321. package/dist/presentation/screen/use_smile_id_document_preview_screen.d.ts.map +1 -1
  322. package/dist/presentation/screen/use_smile_id_document_preview_screen.js +17 -12
  323. package/dist/presentation/screen/use_smile_id_document_preview_screen.js.map +1 -1
  324. package/dist/presentation/screen/use_smile_id_instructions_screen.d.ts +2 -0
  325. package/dist/presentation/screen/use_smile_id_instructions_screen.d.ts.map +1 -1
  326. package/dist/presentation/screen/use_smile_id_instructions_screen.js +2 -1
  327. package/dist/presentation/screen/use_smile_id_instructions_screen.js.map +1 -1
  328. package/dist/presentation/screen/use_smile_id_preview_screen.d.ts +7 -26
  329. package/dist/presentation/screen/use_smile_id_preview_screen.d.ts.map +1 -1
  330. package/dist/presentation/screen/use_smile_id_preview_screen.js +10 -20
  331. package/dist/presentation/screen/use_smile_id_preview_screen.js.map +1 -1
  332. package/dist/presentation/screen/use_smile_id_processing_screen.d.ts +2 -3
  333. package/dist/presentation/screen/use_smile_id_processing_screen.d.ts.map +1 -1
  334. package/dist/presentation/screen/use_smile_id_processing_screen.js +4 -3
  335. package/dist/presentation/screen/use_smile_id_processing_screen.js.map +1 -1
  336. package/dist/presentation/theme/theme.d.ts +1 -1
  337. package/dist/presentation/theme/theme.d.ts.map +1 -1
  338. package/dist/presentation/theme/theme.js +20 -18
  339. package/dist/presentation/theme/theme.js.map +1 -1
  340. package/dist/presentation/utils/force_max_brightness.d.ts +4 -4
  341. package/dist/presentation/utils/locale_utils.d.ts +10 -4
  342. package/dist/presentation/utils/locale_utils.d.ts.map +1 -1
  343. package/dist/presentation/utils/locale_utils.js +13 -5
  344. package/dist/presentation/utils/locale_utils.js.map +1 -1
  345. package/dist/testing/fake_face_analyzer.d.ts +43 -0
  346. package/dist/testing/fake_face_analyzer.d.ts.map +1 -0
  347. package/dist/testing/fake_face_analyzer.js +52 -0
  348. package/dist/testing/fake_face_analyzer.js.map +1 -0
  349. package/dist/testing/index.d.ts +5 -0
  350. package/dist/testing/index.d.ts.map +1 -0
  351. package/dist/testing/index.js +7 -0
  352. package/dist/testing/index.js.map +1 -0
  353. package/dist/testing/scenario_expectations.d.ts +28 -0
  354. package/dist/testing/scenario_expectations.d.ts.map +1 -0
  355. package/dist/testing/scenario_expectations.js +65 -0
  356. package/dist/testing/scenario_expectations.js.map +1 -0
  357. package/dist/testing/scenario_loader.d.ts +11 -0
  358. package/dist/testing/scenario_loader.d.ts.map +1 -0
  359. package/dist/testing/scenario_loader.js +64 -0
  360. package/dist/testing/scenario_loader.js.map +1 -0
  361. package/dist/testing/scripted_scan_results.d.ts +17 -0
  362. package/dist/testing/scripted_scan_results.d.ts.map +1 -0
  363. package/dist/testing/scripted_scan_results.js +52 -0
  364. package/dist/testing/scripted_scan_results.js.map +1 -0
  365. package/package.json +34 -7
  366. package/src/__tests__/dsl.test.ts +51 -1
  367. package/src/__tests__/react_native_mock.tsx +8 -0
  368. package/src/__tests__/setup_react_native.ts +17 -2
  369. package/src/__tests__/snapshots/__snapshots__/screens_structural.test.tsx.snap +5261 -0
  370. package/src/__tests__/snapshots/screens_structural.test.tsx +230 -0
  371. package/src/camera/__tests__/use_smile_id_camera_system.test.ts +103 -0
  372. package/src/camera/camera_defaults.ts +11 -9
  373. package/src/camera/orientation_degrees.ts +5 -6
  374. package/src/core/exception/__tests__/builder_validation_exceptions.test.ts +67 -0
  375. package/src/core/exception/agent_mode_with_enhanced_liveness_exception.ts +20 -0
  376. package/src/core/exception/capture_validation_exceptions.ts +1 -0
  377. package/src/core/exception/index.ts +1 -0
  378. package/src/core/exception/use_smile_id_error_code.ts +1 -0
  379. package/src/core/models/__tests__/document_type.test.ts +7 -5
  380. package/src/core/models/__tests__/flow_models.test.ts +26 -0
  381. package/src/core/models/config.ts +22 -0
  382. package/src/core/models/document_capture_mode.ts +27 -0
  383. package/src/core/models/document_type.ts +7 -5
  384. package/src/core/models/global_privacy_control.ts +45 -0
  385. package/src/core/models/network_config.ts +2 -2
  386. package/src/core/models/result.ts +9 -8
  387. package/src/data/api/__tests__/smile_id_api.test.ts +1 -1
  388. package/src/data/api/interceptors/__tests__/gzip_interceptor.test.ts +83 -0
  389. package/src/data/api/interceptors/__tests__/smile_integrity_interceptor.test.ts +37 -1
  390. package/src/data/api/interceptors/__tests__/smile_request_mac_interceptor.test.ts +59 -1
  391. package/src/data/api/interceptors/smile_auth_interceptor.ts +3 -18
  392. package/src/data/api/interceptors/smile_integrity_interceptor.ts +20 -0
  393. package/src/data/api/interceptors/smile_request_mac_interceptor.ts +13 -0
  394. package/src/data/compression/__tests__/payload_compressor.test.ts +200 -0
  395. package/src/data/compression/__tests__/payload_compressor_real_jpeg.test.ts +226 -0
  396. package/src/data/compression/compressible_asset.ts +62 -0
  397. package/src/data/compression/payload_compression_config.ts +53 -0
  398. package/src/data/compression/payload_compression_runner.ts +102 -0
  399. package/src/data/compression/payload_compressor.ts +164 -0
  400. package/src/data/compression/uri_compressible_asset.ts +85 -0
  401. package/src/data/dsl/builder/__tests__/config_builders.test.ts +62 -0
  402. package/src/data/dsl/builder/cache_config_builder.ts +3 -1
  403. package/src/data/dsl/builder/config_builder.ts +45 -14
  404. package/src/data/dsl/builder/interceptor_config_builder.ts +9 -7
  405. package/src/data/dsl/builder/retry_config_builder.ts +27 -6
  406. package/src/data/dsl/builder/timeout_config_builder.ts +7 -0
  407. package/src/data/dsl/use_smile_id_network_builder.ts +17 -0
  408. package/src/data/factory/__tests__/retry_gzip_mac_composition.test.ts +163 -0
  409. package/src/data/factory/__tests__/signed_job_submission_headers.test.ts +1 -1
  410. package/src/data/factory/networking_factory.ts +14 -1
  411. package/src/data/repository/__tests__/network_retries.test.ts +117 -0
  412. package/src/data/repository/__tests__/use_smile_id_repository.test.ts +1 -1
  413. package/src/data/repository/use_smile_id_repository_impl.ts +96 -9
  414. package/src/data/security/__tests__/request_canonicalizer.test.ts +132 -0
  415. package/src/data/security/__tests__/security_policy.test.ts +96 -0
  416. package/src/data/security/__tests__/smile_id_crypto_manager.test.ts +18 -0
  417. package/src/data/security/request_canonicalizer.ts +15 -2
  418. package/src/data/security/security_policy.ts +70 -0
  419. package/src/data/smile_id_urls.ts +1 -1
  420. package/src/data/util/__tests__/retry_util.test.ts +25 -0
  421. package/src/data/util/__tests__/use_smile_id_token_decoder.test.ts +57 -1
  422. package/src/data/util/retry_util.ts +12 -3
  423. package/src/data/util/use_smile_id_token_decoder.ts +76 -28
  424. package/src/index.ts +6 -4
  425. package/src/l10n/strings_en.ts +2 -1
  426. package/src/l10n/use_smile_id_localizations.ts +3 -0
  427. package/src/metadata/__tests__/device_orientation_collector.test.ts +15 -0
  428. package/src/metadata/__tests__/metadata_configuration_mappers.test.ts +254 -0
  429. package/src/metadata/__tests__/metadata_configuration_objects.test.ts +86 -0
  430. package/src/metadata/__tests__/metadata_device_context.test.ts +147 -0
  431. package/src/metadata/__tests__/metadata_device_os_android.test.ts +18 -0
  432. package/src/metadata/__tests__/metadata_golden_fixture.json +13 -0
  433. package/src/metadata/__tests__/metadata_payload_golden.test.ts +193 -0
  434. package/src/metadata/__tests__/use_smile_id_metadata.test.ts +19 -25
  435. package/src/metadata/builder_configuration.ts +69 -0
  436. package/src/metadata/captured_image_properties.ts +10 -0
  437. package/src/metadata/device_orientation_collector.ts +75 -0
  438. package/src/metadata/geolocation.ts +46 -0
  439. package/src/metadata/metadata_configuration_mappers.ts +248 -0
  440. package/src/metadata/model_configuration.ts +68 -0
  441. package/src/metadata/optional_native_modules.ts +157 -3
  442. package/src/metadata/use_smile_id_metadata.ts +140 -17
  443. package/src/metadata/use_smile_id_metadata_factory.ts +211 -16
  444. package/src/presentation/assets/si_document_green_book_hero_animation.json +1 -4668
  445. package/src/presentation/assets/si_document_hero_animation.json +1 -4799
  446. package/src/presentation/assets/si_document_hero_back_animation.json +1 -2039
  447. package/src/presentation/assets/si_document_passport_hero_animation.json +1 -14491
  448. package/src/presentation/assets/si_ess_all_directions_hero_animation.json +1 -0
  449. package/src/presentation/assets/si_ess_animation_all_directions.json +1 -5575
  450. package/src/presentation/assets/si_selfie_hero_animation.json +1 -1439
  451. package/src/presentation/assets/si_smile_to_capture_animation.json +1 -1439
  452. package/src/presentation/assets/svg/document_shimmer_strings.ts +17 -0
  453. package/src/presentation/assets/svg/instruction_svg_strings.ts +34 -12
  454. package/src/presentation/components/__tests__/enhanced_smart_selfie_animation_frames.test.ts +1 -3
  455. package/src/presentation/components/__tests__/use_smile_id_enhanced_smart_selfie_clip.test.tsx +12 -8
  456. package/src/presentation/components/__tests__/use_smile_id_guideline_thumbnail.test.tsx +34 -1
  457. package/src/presentation/components/__tests__/use_smile_id_instructions_hero.test.tsx +71 -0
  458. package/src/presentation/components/__tests__/use_smile_id_oval_border_palette.test.ts +7 -5
  459. package/src/presentation/components/helpers/enhanced_smart_selfie_animation_frames.ts +0 -6
  460. package/src/presentation/components/icons/index.tsx +65 -18
  461. package/src/presentation/components/use_smile_id_attribution.tsx +1 -1
  462. package/src/presentation/components/use_smile_id_button.tsx +4 -4
  463. package/src/presentation/components/use_smile_id_capture_content.tsx +36 -12
  464. package/src/presentation/components/use_smile_id_captured_document_image.tsx +3 -8
  465. package/src/presentation/components/use_smile_id_document_capture_controls.tsx +103 -39
  466. package/src/presentation/components/use_smile_id_document_overlay.tsx +134 -44
  467. package/src/presentation/components/use_smile_id_document_shimmer.tsx +51 -0
  468. package/src/presentation/components/use_smile_id_enhanced_smart_selfie_clip.tsx +9 -6
  469. package/src/presentation/components/use_smile_id_guideline_thumbnail.tsx +131 -2
  470. package/src/presentation/components/use_smile_id_instructions_hero.tsx +111 -60
  471. package/src/presentation/components/use_smile_id_oval_border_palette.ts +7 -3
  472. package/src/presentation/flow/__tests__/document_flow_navigation.test.ts +203 -4
  473. package/src/presentation/flow/__tests__/flow_navigation_manager.test.ts +49 -0
  474. package/src/presentation/flow/dsl/builder/__tests__/config_builder.test.ts +25 -0
  475. package/src/presentation/flow/dsl/builder/config_builder.ts +35 -0
  476. package/src/presentation/flow/dsl/builder/ml_builder.ts +13 -4
  477. package/src/presentation/flow/dsl/builder/screens_builder.ts +110 -12
  478. package/src/presentation/flow/dsl/builder/theme_builder.ts +19 -2
  479. package/src/presentation/flow/dsl/use_smile_id_builder.tsx +6 -4
  480. package/src/presentation/flow/dsl/use_smile_id_flow_builder.ts +62 -36
  481. package/src/presentation/flow/flow_navigation_manager.ts +185 -14
  482. package/src/presentation/flow/model/instruction_guideline.ts +6 -0
  483. package/src/presentation/flow/model/instructions_defaults.ts +104 -26
  484. package/src/presentation/flow/screen/orchestrated_capture_screen.tsx +60 -12
  485. package/src/presentation/flow/screen/orchestrated_consent_screen.tsx +5 -0
  486. package/src/presentation/flow/screen/orchestrated_instructions_screen.tsx +1 -0
  487. package/src/presentation/flow/screen/orchestrated_preview_screen.tsx +4 -14
  488. package/src/presentation/flow/screen/orchestrated_processing_screen.tsx +3 -3
  489. package/src/presentation/flow/use_smile_id_flow.tsx +11 -4
  490. package/src/presentation/flow/validation/__tests__/flow_validator.test.ts +61 -1
  491. package/src/presentation/flow/validation/__tests__/job_type_validator.test.ts +64 -0
  492. package/src/presentation/flow/validation/flow_validator.ts +55 -26
  493. package/src/presentation/flow/validation/job_type_validator.ts +24 -0
  494. package/src/presentation/screen/__tests__/capture_ui_state.test.ts +66 -47
  495. package/src/presentation/screen/__tests__/ess_turn_haptics.test.ts +15 -11
  496. package/src/presentation/screen/__tests__/instructions_screen_helpers.test.ts +15 -3
  497. package/src/presentation/screen/__tests__/scan_state_to_overlay_state.test.ts +47 -27
  498. package/src/presentation/screen/__tests__/use_smile_id_capture_screen.test.tsx +182 -18
  499. package/src/presentation/screen/__tests__/use_smile_id_document_back_instructions.test.tsx +1 -1
  500. package/src/presentation/screen/__tests__/use_smile_id_preview_screen.test.tsx +10 -40
  501. package/src/presentation/screen/helpers/__tests__/use_capture_orientation_lock.test.tsx +212 -0
  502. package/src/presentation/screen/helpers/capture_screen_helpers.ts +1 -0
  503. package/src/presentation/screen/helpers/capture_ui_state.ts +27 -27
  504. package/src/presentation/screen/helpers/ess_turn_haptics.ts +9 -9
  505. package/src/presentation/screen/helpers/instructions_screen_helpers.ts +7 -2
  506. package/src/presentation/screen/helpers/scan_state_to_overlay_state.ts +16 -13
  507. package/src/presentation/screen/helpers/use_capture_orientation_lock.ts +69 -7
  508. package/src/presentation/screen/use_smile_id_capture_screen.tsx +280 -54
  509. package/src/presentation/screen/use_smile_id_consent_screen.tsx +16 -5
  510. package/src/presentation/screen/use_smile_id_document_back_instructions.tsx +14 -23
  511. package/src/presentation/screen/use_smile_id_document_preview_screen.tsx +33 -23
  512. package/src/presentation/screen/use_smile_id_instructions_screen.tsx +4 -0
  513. package/src/presentation/screen/use_smile_id_preview_screen.tsx +21 -53
  514. package/src/presentation/screen/use_smile_id_processing_screen.tsx +8 -8
  515. package/src/presentation/theme/theme.ts +21 -19
  516. package/src/presentation/utils/__tests__/locale_utils.test.ts +46 -5
  517. package/src/presentation/utils/force_max_brightness.tsx +4 -4
  518. package/src/presentation/utils/locale_utils.ts +13 -4
  519. package/src/testing/__tests__/fake_face_analyzer.test.ts +42 -0
  520. package/src/testing/__tests__/scenario_expectations.test.ts +110 -0
  521. package/src/testing/__tests__/scenario_loader.test.ts +64 -0
  522. package/src/testing/fake_face_analyzer.ts +82 -0
  523. package/src/testing/index.ts +15 -0
  524. package/src/testing/scenario_expectations.ts +87 -0
  525. package/src/testing/scenario_loader.ts +83 -0
  526. package/src/testing/scripted_scan_results.ts +66 -0
  527. package/dist/camera/frame_processor_plugin.d.ts +0 -28
  528. package/dist/camera/frame_processor_plugin.d.ts.map +0 -1
  529. package/dist/camera/frame_processor_plugin.js +0 -21
  530. package/dist/camera/frame_processor_plugin.js.map +0 -1
  531. package/dist/camera/use_smile_id_frame_processor.d.ts +0 -38
  532. package/dist/camera/use_smile_id_frame_processor.d.ts.map +0 -1
  533. package/dist/camera/use_smile_id_frame_processor.js +0 -2
  534. package/dist/camera/use_smile_id_frame_processor.js.map +0 -1
  535. package/dist/presentation/components/use_smile_id_document_frame_glyph.d.ts +0 -17
  536. package/dist/presentation/components/use_smile_id_document_frame_glyph.d.ts.map +0 -1
  537. package/dist/presentation/components/use_smile_id_document_frame_glyph.js +0 -17
  538. package/dist/presentation/components/use_smile_id_document_frame_glyph.js.map +0 -1
  539. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_animation.d.ts +0 -24
  540. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_animation.d.ts.map +0 -1
  541. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_animation.js +0 -91
  542. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_animation.js.map +0 -1
  543. package/dist/presentation/components/use_smile_id_face_silhouette_overlay.d.ts +0 -15
  544. package/dist/presentation/components/use_smile_id_face_silhouette_overlay.d.ts.map +0 -1
  545. package/dist/presentation/components/use_smile_id_face_silhouette_overlay.js +0 -19
  546. package/dist/presentation/components/use_smile_id_face_silhouette_overlay.js.map +0 -1
  547. package/dist/presentation/components/use_smile_id_instruction_card.d.ts +0 -31
  548. package/dist/presentation/components/use_smile_id_instruction_card.d.ts.map +0 -1
  549. package/dist/presentation/components/use_smile_id_instruction_card.js +0 -43
  550. package/dist/presentation/components/use_smile_id_instruction_card.js.map +0 -1
  551. package/dist/presentation/screen/helpers/use_document_orientation_lock.d.ts +0 -24
  552. package/dist/presentation/screen/helpers/use_document_orientation_lock.d.ts.map +0 -1
  553. package/dist/presentation/screen/helpers/use_document_orientation_lock.js +0 -47
  554. package/dist/presentation/screen/helpers/use_document_orientation_lock.js.map +0 -1
  555. package/src/presentation/components/use_smile_id_document_frame_glyph.tsx +0 -162
  556. package/src/presentation/components/use_smile_id_face_silhouette_overlay.tsx +0 -27
@@ -8,22 +8,61 @@ import { UseSmileIDCrashReporting } from "@smileid/usesmileid_bridge";
8
8
  * Each screen asserts its OWN orientation on mount, so document → selfie
9
9
  * reverts deterministically rather than depending on the previous
10
10
  * screen's teardown winning a race against the next camera initialising.
11
- * Unmount restores portrait-up as a safety net.
12
11
  *
13
12
  * Locks are global: the host app must permit the locked orientations at
14
13
  * the OS level (iOS `UISupportedInterfaceOrientations`, Android activity
15
- * `screenOrientation`) for the lock to take effect.
14
+ * `screenOrientation`) for the lock to take effect — a host that does not
15
+ * is warned about and reported rather than silently staying upright.
16
16
  */
17
- export function useCaptureOrientationLock(orientation) {
17
+ export function useCaptureOrientationLock(orientation, { exitLock = ScreenOrientation.OrientationLock.PORTRAIT_UP, } = {}) {
18
18
  useEffect(() => {
19
19
  const target = orientation === "Landscape"
20
20
  ? ScreenOrientation.OrientationLock.LANDSCAPE
21
21
  : ScreenOrientation.OrientationLock.PORTRAIT_UP;
22
+ void reportIfLockUnsupported(target);
22
23
  void lockOrientation(target);
23
24
  return () => {
24
- void lockOrientation(ScreenOrientation.OrientationLock.PORTRAIT_UP);
25
+ void lockOrientation(exitLock);
25
26
  };
26
- }, [orientation]);
27
+ }, [orientation, exitLock]);
28
+ }
29
+ /**
30
+ * Surface a host build that cannot honour `target`. `lockAsync` resolves
31
+ * successfully in that case, so without this preflight the capture screen
32
+ * just stays in the wrong orientation with no signal. (Expo's `app.json`
33
+ * `orientation` value is not such a case: the module's app-delegate hook
34
+ * outranks the baked `Info.plist` on iOS — device-verified.)
35
+ */
36
+ async function reportIfLockUnsupported(target) {
37
+ let supported;
38
+ try {
39
+ supported = await ScreenOrientation.supportsOrientationLockAsync(target);
40
+ }
41
+ catch (error) {
42
+ reportOrientationFailure(error);
43
+ return;
44
+ }
45
+ if (supported)
46
+ return;
47
+ // `typeof` guard: `__DEV__` is bundler-injected and absent outside Metro-like
48
+ // environments, where a bare reference throws rather than reading falsy.
49
+ const isDevBuild = typeof __DEV__ !== "undefined" && __DEV__;
50
+ if (isDevBuild && !warnedUnsupportedTargets.has(target)) {
51
+ warnedUnsupportedTargets.add(target);
52
+ console.warn("[UseSmileID] The capture screen needs to lock the device orientation, " +
53
+ "but this build does not permit it. Allow the required orientations " +
54
+ "in your app's iOS Info.plist / Android manifest.");
55
+ }
56
+ reportOrientationFailure(new Error(`orientation lock unsupported by host build: ${target}`));
57
+ }
58
+ /**
59
+ * Dedupes the dev warning per target: a flow remounts the capture screen for the back
60
+ * side and interstitial, and the misconfiguration can't change mid-session.
61
+ */
62
+ const warnedUnsupportedTargets = new Set();
63
+ /** Test seam: clears the once-per-target dev-warning dedupe. */
64
+ export function resetUnsupportedLockWarningsForTesting() {
65
+ warnedUnsupportedTargets.clear();
27
66
  }
28
67
  /** Lock to `target`, routing a native failure through crash reporting. */
29
68
  async function lockOrientation(target) {
@@ -31,7 +70,10 @@ async function lockOrientation(target) {
31
70
  await ScreenOrientation.lockAsync(target);
32
71
  }
33
72
  catch (error) {
34
- UseSmileIDCrashReporting.captureException(error instanceof Error ? error : new Error(String(error)));
73
+ reportOrientationFailure(error);
35
74
  }
36
75
  }
76
+ function reportOrientationFailure(error) {
77
+ UseSmileIDCrashReporting.captureException(error instanceof Error ? error : new Error(String(error)));
78
+ }
37
79
  //# sourceMappingURL=use_capture_orientation_lock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use_capture_orientation_lock.js","sourceRoot":"","sources":["../../../../src/presentation/screen/helpers/use_capture_orientation_lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAGtE;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CACvC,WAAgC;IAEhC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GACV,WAAW,KAAK,WAAW;YACzB,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC,SAAS;YAC7C,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC,WAAW,CAAC;QACpD,KAAK,eAAe,CAAC,MAAM,CAAC,CAAC;QAE7B,OAAO,GAAG,EAAE;YACV,KAAK,eAAe,CAAC,iBAAiB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACtE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,0EAA0E;AAC1E,KAAK,UAAU,eAAe,CAC5B,MAAyC;IAEzC,IAAI,CAAC;QACH,MAAM,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wBAAwB,CAAC,gBAAgB,CACvC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC1D,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"use_capture_orientation_lock.js","sourceRoot":"","sources":["../../../../src/presentation/screen/helpers/use_capture_orientation_lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAWtE;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CACvC,WAAgC,EAChC,EACE,QAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,WAAW,MAC3B,EAAE;IAEjC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GACV,WAAW,KAAK,WAAW;YACzB,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC,SAAS;YAC7C,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC,WAAW,CAAC;QACpD,KAAK,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACrC,KAAK,eAAe,CAAC,MAAM,CAAC,CAAC;QAE7B,OAAO,GAAG,EAAE;YACV,KAAK,eAAe,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,uBAAuB,CACpC,MAAyC;IAEzC,IAAI,SAAkB,CAAC;IACvB,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,iBAAiB,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAC3E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO;IACT,CAAC;IACD,IAAI,SAAS;QAAE,OAAO;IAEtB,8EAA8E;IAC9E,yEAAyE;IACzE,MAAM,UAAU,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC;IAC7D,IAAI,UAAU,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CACV,wEAAwE;YACtE,qEAAqE;YACrE,kDAAkD,CACrD,CAAC;IACJ,CAAC;IACD,wBAAwB,CACtB,IAAI,KAAK,CAAC,+CAA+C,MAAM,EAAE,CAAC,CACnE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAAqC,CAAC;AAE9E,gEAAgE;AAChE,MAAM,UAAU,sCAAsC;IACpD,wBAAwB,CAAC,KAAK,EAAE,CAAC;AACnC,CAAC;AAED,0EAA0E;AAC1E,KAAK,UAAU,eAAe,CAC5B,MAAyC;IAEzC,IAAI,CAAC;QACH,MAAM,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,wBAAwB,CAAC,gBAAgB,CACvC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC1D,CAAC;AACJ,CAAC"}
@@ -1,11 +1,25 @@
1
1
  import { type ReactNode } from "react";
2
2
  import type { DocumentAnalyzer, FaceAnalyzer } from "@smileid/usesmileid_platform_interface";
3
- import type { CaptureReadyEvent, ScanState } from "@smileid/usesmileid_bridge";
3
+ import type { CaptureReadyEvent, UseSmileIDScanState } from "@smileid/usesmileid_bridge";
4
4
  import { DocumentSide } from "@smileid/usesmileid_bridge";
5
5
  import { CaptureType } from "../../core/models/ml_config";
6
6
  import type { DocumentCaptureMode } from "../../core/models/document_capture_mode";
7
+ import type { DocumentType } from "../../core/models/document_type";
7
8
  import { type UseSmileIDTheme } from "../theme/theme";
8
9
  import { DocumentImageOrigin } from "../../metadata/document_image_origin";
10
+ /** Capture telemetry surfaced alongside the captured artifacts at completion. */
11
+ export interface CaptureTelemetry {
12
+ /** Elapsed time in ms from the first analyzed frame to completion. */
13
+ readonly durationMs: number;
14
+ /** Count of face/document-lost resets (rising edges of `unsatisfied`). */
15
+ readonly retries: number;
16
+ /** Identifier of the camera used for capture (`CameraDevice.id`); `undefined` until resolved. */
17
+ readonly cameraName?: string;
18
+ /** Accelerometer `"epochMs,x,y,z"` samples collected during capture. */
19
+ readonly devicePositions: readonly string[];
20
+ /** Span of movement magnitude during capture; `null` when no samples ran. */
21
+ readonly deviceMovementDetected: number | null;
22
+ }
9
23
  export type UseSmileIDCaptureScreenProps = {
10
24
  readonly captureType: CaptureType;
11
25
  /**
@@ -21,15 +35,17 @@ export type UseSmileIDCaptureScreenProps = {
21
35
  * settled, with every `CaptureReadyEvent` of the session (one
22
36
  * `"selfie"` + N `"liveness"` for face, one `"document"` for document).
23
37
  */
24
- readonly onCaptureComplete?: (events: readonly CaptureReadyEvent[]) => void;
38
+ readonly onCaptureComplete?: (events: readonly CaptureReadyEvent[], telemetry: CaptureTelemetry) => void;
25
39
  /** Records how a document side was produced (auto/manual/gallery), fired just before delivery. */
26
40
  readonly onDocumentOrigin?: (origin: DocumentImageOrigin) => void;
27
41
  /** Fires when the state machine reaches `"timeout"`; the screen stops streaming. */
28
- readonly onCaptureTimeout?: (state: ScanState) => void;
42
+ readonly onCaptureTimeout?: (state: UseSmileIDScanState) => void;
29
43
  readonly onBack?: () => void;
30
44
  readonly showAttribution?: boolean;
31
45
  /** Keeps the oval rim neutral through CAPTURING/PROCESSING — ESS has no green oval treatment. */
32
46
  readonly enableEnhancedLiveness?: boolean;
47
+ /** Runs a selfie capture on the rear camera. Ignored for document capture. */
48
+ readonly allowAgentMode?: boolean;
33
49
  /**
34
50
  * Document aspect ratio (width / height) for the document capture
35
51
  * guide cutout. Ignored for selfie capture. Omitted ⇒ the overlay's
@@ -49,6 +65,8 @@ export type UseSmileIDCaptureScreenProps = {
49
65
  * `document_front.jpg` / `document_back.jpg`. Ignored for selfie capture.
50
66
  */
51
67
  readonly documentSide?: DocumentSide;
68
+ /** Document type — selects the in-frame capture shimmer skeleton. Ignored for selfie. */
69
+ readonly documentTypeKind?: DocumentType["kind"];
52
70
  /** Close/cancel the whole flow (document capture chrome — top-right X). */
53
71
  readonly onClose?: () => void;
54
72
  readonly startButton?: (props: {
@@ -1 +1 @@
1
- {"version":3,"file":"use_smile_id_capture_screen.d.ts","sourceRoot":"","sources":["../../../src/presentation/screen/use_smile_id_capture_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAaf,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACb,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAEL,YAAY,EAEb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAEnF,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AASzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAe3E,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAElC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,gBAAgB,CAAC;IAEnD,wEAAwE;IACxE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAErC;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,KAAK,IAAI,CAAC;IAC5E,kGAAkG;IAClG,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAElE,oFAAoF;IACpF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAEvD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IAEnC,iGAAiG;IACjG,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAE1C;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAErC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAC3C,8EAA8E;IAC9E,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAE9B,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE;QAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;KAClB,KAAK,SAAS,CAAC;IAChB,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;CAClC,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,+BA0f1E"}
1
+ {"version":3,"file":"use_smile_id_capture_screen.d.ts","sourceRoot":"","sources":["../../../src/presentation/screen/use_smile_id_capture_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAmBf,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACb,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,YAAY,EAEb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAczE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAgB3E,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iGAAiG;IACjG,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,6EAA6E;IAC7E,QAAQ,CAAC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;CAChD;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAElC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,gBAAgB,CAAC;IAEnD,wEAAwE;IACxE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAErC;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAC3B,MAAM,EAAE,SAAS,iBAAiB,EAAE,EACpC,SAAS,EAAE,gBAAgB,KACxB,IAAI,CAAC;IACV,kGAAkG;IAClG,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAElE,oFAAoF;IACpF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAEjE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IAEnC,iGAAiG;IACjG,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAE1C,8EAA8E;IAC9E,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAElC;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAErC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAC3C,8EAA8E;IAC9E,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,yFAAyF;IACzF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACjD,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAE9B,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE;QAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;KAClB,KAAK,SAAS,CAAC;IAChB,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;CAClC,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,+BAsrB1E"}
@@ -1,19 +1,22 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useCallback, useEffect, useMemo, useRef, useState, } from "react";
3
- import { StatusBar, StyleSheet, View } from "react-native";
3
+ import { Platform, StatusBar, StyleSheet, View, useWindowDimensions, } from "react-native";
4
4
  import { Camera, useCameraDevice, useCameraFormat, useCameraPermission, useFrameProcessor, VisionCameraProxy, } from "react-native-vision-camera";
5
5
  import { Worklets } from "react-native-worklets-core";
6
6
  import * as ImagePicker from "expo-image-picker";
7
7
  import { FrameProcessorPluginNotRegisteredException } from "@smileid/usesmileid_bridge";
8
- import { CaptureReadyEventKind, DocumentSide, ScanStateType, } from "@smileid/usesmileid_bridge";
8
+ import { CaptureReadyEventKind, DocumentSide, UseSmileIDScanStateType, } from "@smileid/usesmileid_bridge";
9
9
  import { CaptureType } from "../../core/models/ml_config";
10
10
  import { resampleImportedDocument } from "../../camera/document_image_pipeline";
11
11
  import { defaultLightTheme } from "../theme/theme";
12
+ import { UseSmileIDThemeProvider } from "../theme/theme_context";
12
13
  import { UseSmileIDCaptureContent, } from "../components/use_smile_id_capture_content";
14
+ import { DEFAULT_DOCUMENT_ASPECT, documentGuideRect, } from "../components/use_smile_id_document_overlay";
13
15
  import { UseSmileIDCrashReporting } from "@smileid/usesmileid_bridge";
14
16
  import { ForceMaxBrightness } from "../utils/force_max_brightness";
15
17
  import { CameraDefaults } from "../../camera/camera_defaults";
16
18
  import { DocumentImageOrigin } from "../../metadata/document_image_origin";
19
+ import { DeviceOrientationCollector } from "../../metadata/device_orientation_collector";
17
20
  import { useSmileIDFrameStream } from "../../camera/use_smile_id_frame_stream";
18
21
  import { orientationToDegrees } from "../../camera/orientation_degrees";
19
22
  import { isSessionBoundary, mapCaptureUiState, preCaptureUiState, } from "./helpers/capture_ui_state";
@@ -33,23 +36,35 @@ export function UseSmileIDCaptureScreen(props) {
33
36
  const theme = props.theme ?? defaultLightTheme;
34
37
  const showAttribution = props.showAttribution ?? true;
35
38
  const enableEnhancedLiveness = props.enableEnhancedLiveness ?? false;
39
+ const allowAgentMode = props.allowAgentMode ?? false;
36
40
  // Literal union — useCameraDevice takes the lowercase string directly.
37
- const cameraFacing = props.captureType === CaptureType.selfie ? "front" : "back";
41
+ const cameraFacing = props.captureType === CaptureType.selfie && !allowAgentMode
42
+ ? "front"
43
+ : "back";
38
44
  const { hasPermission, requestPermission } = useCameraPermission();
39
45
  const device = useCameraDevice(cameraFacing);
40
46
  // Still-capture handle for the document manual shutter (`takePhoto()`).
41
47
  const cameraRef = useRef(null);
42
48
  // Pin an explicit format: the "highest supported" heuristic can pick 4K,
43
49
  // stalling the frame-processor thread and stuttering the pipeline.
50
+ // Document capture uses 16:9 so the analysis FOV matches the visible 16:9
51
+ // preview — keeping the guide-rectangle crop aligned with the framed document
52
+ // (mirrors the native Android SDK's RATIO_16_9 + 1280×720 pin). Selfie keeps
53
+ // 4:3: the face geometry + smile heuristic are calibrated on 4:3, and 16:9
54
+ // skews normalized landmark ratios and shifts every threshold.
55
+ const isDocumentFormat = props.captureType === CaptureType.document;
44
56
  const format = useCameraFormat(device, [
45
- // 4:3 first: geometry checks + smile heuristic are calibrated on 4:3;
46
- // 16:9 skews normalized landmark ratios and shifts every threshold.
47
- { videoAspectRatio: 4 / 3 },
57
+ { videoAspectRatio: isDocumentFormat ? 16 / 9 : 4 / 3 },
48
58
  {
49
- videoResolution: {
50
- width: CameraDefaults.analysisTargetResolution.width,
51
- height: CameraDefaults.analysisTargetResolution.height,
52
- },
59
+ videoResolution: isDocumentFormat
60
+ ? {
61
+ width: CameraDefaults.documentAnalysisResolution.width,
62
+ height: CameraDefaults.documentAnalysisResolution.height,
63
+ }
64
+ : {
65
+ width: CameraDefaults.analysisTargetResolution.width,
66
+ height: CameraDefaults.analysisTargetResolution.height,
67
+ },
53
68
  },
54
69
  { fps: CameraDefaults.analysisTargetFps },
55
70
  ]);
@@ -62,7 +77,7 @@ export function UseSmileIDCaptureScreen(props) {
62
77
  }, [hasPermission, requestPermission]);
63
78
  // Per-frame scan state drives the overlay + feedback bubble.
64
79
  const [scanState, setScanState] = useState({
65
- type: ScanStateType.Initial,
80
+ type: UseSmileIDScanStateType.Initial,
66
81
  });
67
82
  const [streaming, setStreaming] = useState(false);
68
83
  // Bumped on every Start tap to reset the feedback debouncer.
@@ -72,6 +87,11 @@ export function UseSmileIDCaptureScreen(props) {
72
87
  const [hasAnalyzedFrame, setHasAnalyzedFrame] = useState(false);
73
88
  // Fallback shutter, revealed after activateManualAfterMs. Resets per mount.
74
89
  const [manualShutterRevealed, setManualShutterRevealed] = useState(false);
90
+ // Set when a document scan times out, so the recovery controls stay on screen
91
+ // after the scan (and `streaming`) stops. `timedOutRef` keeps the terminal
92
+ // branch idempotent without latching the one-shot delivery gate.
93
+ const [captureTimedOut, setCaptureTimedOut] = useState(false);
94
+ const timedOutRef = useRef(false);
75
95
  // True while a manual/gallery delivery is in flight — disables the controls.
76
96
  const [deliveringDocument, setDeliveringDocument] = useState(false);
77
97
  // Transient gallery-import error; overrides the live chip, self-clears so the user can re-pick.
@@ -92,6 +112,24 @@ export function UseSmileIDCaptureScreen(props) {
92
112
  // Raw (not committed) frame state for the session-boundary check, so
93
113
  // transitions the 1% bucketing skips committing are still seen.
94
114
  const previousScanStateRef = useRef(null);
115
+ // Capture telemetry: wall-clock start (first analyzed frame) and a
116
+ // rising-edge `unsatisfied` retry counter, surfaced via onCaptureComplete.
117
+ const captureStartedAtRef = useRef(null);
118
+ const captureRetriesRef = useRef(0);
119
+ const wasUnsatisfiedRef = useRef(false);
120
+ // Accelerometer sampler for device_positions / device_movement_detected, run only
121
+ // while the live capture loop is streaming.
122
+ const deviceOrientationRef = useRef(new DeviceOrientationCollector());
123
+ const captureTelemetry = useCallback(() => ({
124
+ durationMs: captureStartedAtRef.current === null
125
+ ? 0
126
+ : Date.now() - captureStartedAtRef.current,
127
+ retries: captureRetriesRef.current,
128
+ devicePositions: deviceOrientationRef.current.devicePositions,
129
+ deviceMovementDetected: deviceOrientationRef.current.deviceMovementDetected,
130
+ // Omit (not set to undefined) when unresolved — exactOptionalPropertyTypes.
131
+ ...(device?.id !== undefined ? { cameraName: device.id } : {}),
132
+ }), [device]);
95
133
  const onStartCapture = props.onStartCapture;
96
134
  const handleStart = useCallback(() => {
97
135
  if (streaming || completedRef.current)
@@ -110,6 +148,21 @@ export function UseSmileIDCaptureScreen(props) {
110
148
  const allowGalleryUpload = props.allowGalleryUpload ?? false;
111
149
  const documentSide = props.documentSide ?? DocumentSide.Front;
112
150
  const isDocumentCapture = props.captureType === CaptureType.document;
151
+ // Reset capture telemetry per side so each document side reports its own
152
+ // duration / retries (the screen instance is reused across the front→back flip).
153
+ useEffect(() => {
154
+ captureStartedAtRef.current = null;
155
+ captureRetriesRef.current = 0;
156
+ wasUnsatisfiedRef.current = false;
157
+ }, [documentSide]);
158
+ // Sample the accelerometer only while the live capture loop streams. start()
159
+ // clears prior samples, so a retry / side switch begins fresh; cleanup stops it.
160
+ useEffect(() => {
161
+ if (streaming) {
162
+ deviceOrientationRef.current.start();
163
+ }
164
+ return () => deviceOrientationRef.current.stop();
165
+ }, [streaming]);
113
166
  // Reveal the fallback shutter after the delay once streaming begins.
114
167
  // Bound to `streaming`: any capture clears it, tearing this effect down
115
168
  // and clearing the timer, so it can't fire post-capture or leak.
@@ -150,7 +203,7 @@ export function UseSmileIDCaptureScreen(props) {
150
203
  captureIndex: 0,
151
204
  url: processedUri,
152
205
  },
153
- ]);
206
+ ], captureTelemetry());
154
207
  }
155
208
  catch (error) {
156
209
  UseSmileIDCrashReporting.captureException(error instanceof Error ? error : new Error(String(error)));
@@ -216,7 +269,7 @@ export function UseSmileIDCaptureScreen(props) {
216
269
  captureIndex: 0,
217
270
  url: processedUri,
218
271
  },
219
- ]);
272
+ ], captureTelemetry());
220
273
  }
221
274
  catch (error) {
222
275
  UseSmileIDCrashReporting.captureException(error instanceof Error ? error : new Error(String(error)));
@@ -264,7 +317,17 @@ export function UseSmileIDCaptureScreen(props) {
264
317
  // Unsatisfied = native session reset; drop accumulated events so it
265
318
  // can't leak stale liveness frames. `else` so a reset frame can't
266
319
  // re-add its own stale events on the same pass.
267
- if (result.state.type === ScanStateType.Unsatisfied) {
320
+ // Capture telemetry: anchor the start clock on the first analyzed frame,
321
+ // and count rising edges of `unsatisfied` as retries.
322
+ if (captureStartedAtRef.current === null) {
323
+ captureStartedAtRef.current = Date.now();
324
+ }
325
+ const isUnsatisfied = result.state.type === UseSmileIDScanStateType.Unsatisfied;
326
+ if (isUnsatisfied && !wasUnsatisfiedRef.current) {
327
+ captureRetriesRef.current += 1;
328
+ }
329
+ wasUnsatisfiedRef.current = isUnsatisfied;
330
+ if (result.state.type === UseSmileIDScanStateType.Unsatisfied) {
268
331
  capturedEventsRef.current = [];
269
332
  }
270
333
  else if (result.capturedEvents.length > 0) {
@@ -288,7 +351,7 @@ export function UseSmileIDCaptureScreen(props) {
288
351
  setHasAnalyzedFrame(true);
289
352
  // Terminal states: finished → flush + complete; timeout → failure
290
353
  // without flushing (no captured artifacts to wait on).
291
- if (result.state.type === ScanStateType.Finished) {
354
+ if (result.state.type === UseSmileIDScanStateType.Finished) {
292
355
  if (completedRef.current)
293
356
  return;
294
357
  completedRef.current = true;
@@ -304,14 +367,23 @@ export function UseSmileIDCaptureScreen(props) {
304
367
  .finally(() => {
305
368
  // No-op for selfie (callback unset).
306
369
  onDocumentOrigin?.(DocumentImageOrigin.CameraAutoCapture);
307
- onCaptureComplete?.(capturedEventsRef.current);
370
+ onCaptureComplete?.(capturedEventsRef.current, captureTelemetry());
308
371
  });
309
372
  }
310
- else if (result.state.type === ScanStateType.Timeout) {
311
- if (completedRef.current)
373
+ else if (result.state.type === UseSmileIDScanStateType.Timeout) {
374
+ if (completedRef.current || timedOutRef.current)
312
375
  return;
313
- completedRef.current = true;
314
376
  setStreaming(false);
377
+ if (isDocumentCapture) {
378
+ // Document capture has no Start button, so a timeout must leave a way
379
+ // forward: reveal the manual shutter and keep the delivery gate open
380
+ // so the tap can still produce a capture.
381
+ timedOutRef.current = true;
382
+ setCaptureTimedOut(true);
383
+ }
384
+ else {
385
+ completedRef.current = true;
386
+ }
315
387
  onCaptureTimeout?.(result.state);
316
388
  }
317
389
  }, {
@@ -326,7 +398,7 @@ export function UseSmileIDCaptureScreen(props) {
326
398
  : preCaptureUiState(props.captureType, enableEnhancedLiveness);
327
399
  // Only the guidance copy is debounced; rim, fill, and direction stay real-time.
328
400
  const settledFeedbackKey = useDebouncedFeedbackKey(uiState.feedbackKey, sessionEpoch);
329
- const isInstructionState = scanState.type === ScanStateType.Initial && !streaming;
401
+ const isInstructionState = scanState.type === UseSmileIDScanStateType.Initial && !streaming;
330
402
  const canStart = !streaming && !completedRef.current;
331
403
  const previewReady = hasPermission && device != null;
332
404
  // Resolve the native frame processor plugin once per name.
@@ -352,28 +424,100 @@ export function UseSmileIDCaptureScreen(props) {
352
424
  onFrameResult(rawResult);
353
425
  });
354
426
  }, [onFrameResult]);
355
- // Physical device tilt (0 = upright portrait) for the native
356
- // session's upright validator and head-pose math; gravity-sourced,
357
- // never derived from `frame.orientation` (fixed sensor mounting).
427
+ // Physical device tilt (0 = portrait) for the native upright validator /
428
+ // head-pose math; gravity-sourced, never from `frame.orientation`.
358
429
  const [deviceOrientationDegrees, setDeviceOrientationDegrees] = useState(0);
430
+ // Locked INTERFACE orientation (0/90/270) — the axis the preview and guide are
431
+ // drawn against, from VisionCamera's preview orientation, NOT device gravity
432
+ // (the document screen locks the interface while the phone is held flat, so
433
+ // gravity disagrees). iOS uprights the saved document to this axis.
434
+ const [previewOrientationDegrees, setPreviewOrientationDegrees] = useState(0);
435
+ // VisionCamera derives its iOS preview orientation from the interface
436
+ // orientation but only refreshes it on a PHYSICAL rotation — a programmatic
437
+ // lock (the document landscape lock) never fires that, so the preview stays
438
+ // portrait in the rotated UI. Remounting <Camera> when the interface flips
439
+ // forces a re-read. iOS only — Android's preview already tracks the lock.
440
+ const { width: windowWidth, height: windowHeight } = useWindowDimensions();
441
+ const cameraOrientationKey = Platform.OS === "ios"
442
+ ? windowWidth > windowHeight
443
+ ? "landscape"
444
+ : "portrait"
445
+ : "camera";
446
+ // Camera viewport size, reported by the capture content on layout. Drives the
447
+ // document crop region so the saved capture matches the on-screen frame.
448
+ const [viewport, setViewport] = useState({ width: 0, height: 0 });
449
+ const handleViewportLayout = useCallback((size) => {
450
+ setViewport((previous) => previous.width === size.width && previous.height === size.height
451
+ ? previous
452
+ : size);
453
+ }, []);
454
+ // The document guide rectangle as a native crop region — viewport fractions +
455
+ // size + cover scale — derived from the SAME geometry the overlay draws
456
+ // (documentGuideRect), so the native side crops the saved document to exactly
457
+ // the framed rectangle. undefined for selfie or before the viewport is known.
458
+ const documentCropRegion = useMemo(() => {
459
+ if (!isDocumentCapture || viewport.width <= 0 || viewport.height <= 0) {
460
+ return undefined;
461
+ }
462
+ const aspect = props.knownIdAspectRatio ?? DEFAULT_DOCUMENT_ASPECT;
463
+ const rect = documentGuideRect(aspect, viewport.width, viewport.height);
464
+ return {
465
+ left: rect.left / viewport.width,
466
+ top: rect.top / viewport.height,
467
+ width: rect.width / viewport.width,
468
+ height: rect.height / viewport.height,
469
+ viewportWidthPx: Math.round(viewport.width),
470
+ viewportHeightPx: Math.round(viewport.height),
471
+ };
472
+ }, [isDocumentCapture, viewport, props.knownIdAspectRatio]);
359
473
  const frameProcessor = useFrameProcessor((frame) => {
360
474
  "worklet";
361
475
  if (!plugin)
362
476
  return;
477
+ // Crop region passed as FLAT numeric args — frame-processor arguments
478
+ // don't reliably accept nested objects. cropWidth <= 0 signals "no region"
479
+ // (selfie, or before the viewport is measured), leaving it uncropped.
480
+ //
481
+ // The saved document uprights to the LOCKED INTERFACE axis (what the
482
+ // preview and guide are drawn against), never device gravity (the phone is
483
+ // held flat): iOS uprights to `viewportOrientation`, Android via its
484
+ // display-tracking `rotationDegrees`. `rotation` stays the RAW gravity
485
+ // tilt the native upright validator needs.
363
486
  const rawResult = plugin.call(frame, {
364
487
  rotation: deviceOrientationDegrees,
488
+ viewportOrientation: previewOrientationDegrees,
489
+ cropLeft: documentCropRegion ? documentCropRegion.left : 0,
490
+ cropTop: documentCropRegion ? documentCropRegion.top : 0,
491
+ cropWidth: documentCropRegion ? documentCropRegion.width : 0,
492
+ cropHeight: documentCropRegion ? documentCropRegion.height : 0,
493
+ cropViewportWidth: documentCropRegion
494
+ ? documentCropRegion.viewportWidthPx
495
+ : 0,
496
+ cropViewportHeight: documentCropRegion
497
+ ? documentCropRegion.viewportHeightPx
498
+ : 0,
365
499
  });
366
500
  onFrameResultRunOnJS(rawResult);
367
- }, [plugin, onFrameResultRunOnJS, deviceOrientationDegrees]);
501
+ }, [
502
+ plugin,
503
+ onFrameResultRunOnJS,
504
+ deviceOrientationDegrees,
505
+ previewOrientationDegrees,
506
+ documentCropRegion,
507
+ ]);
368
508
  // Document controls — live capture only (after Start). Manual shutter
369
509
  // follows the capture mode + fallback timer; gallery follows
370
510
  // allowGalleryUpload. Renderer also hides both during CAPTURING/PROCESSING.
511
+ // A timeout offers the shutter in every capture mode — it is the recovery
512
+ // affordance, so it outranks `captureMode` and survives `streaming` going
513
+ // false with the scan.
371
514
  const manualShutterAvailable = isDocumentCapture &&
372
- streaming &&
373
- (captureMode?.kind === "manualCapture" ||
374
- (captureMode?.kind === "autoCaptureWithManualFallback" &&
375
- manualShutterRevealed));
376
- const galleryAvailable = isDocumentCapture && streaming && allowGalleryUpload;
515
+ (captureTimedOut ||
516
+ (streaming &&
517
+ (captureMode?.kind === "manualCapture" ||
518
+ (captureMode?.kind === "autoCaptureWithManualFallback" &&
519
+ manualShutterRevealed))));
520
+ const galleryAvailable = isDocumentCapture && (streaming || captureTimedOut) && allowGalleryUpload;
377
521
  // Deps are scalar fields (mapCaptureUiState returns a fresh object per
378
522
  // render). captureProgress intentionally stays a separate per-frame prop.
379
523
  const contentState = useMemo(() => ({
@@ -388,9 +532,13 @@ export function UseSmileIDCaptureScreen(props) {
388
532
  showCaptureButton: isInstructionState && !isDocumentCapture,
389
533
  showManualShutter: manualShutterAvailable,
390
534
  showGalleryUpload: galleryAvailable,
535
+ isBackSide: documentSide === DocumentSide.Back,
391
536
  ...(props.knownIdAspectRatio !== undefined
392
537
  ? { knownIdAspectRatio: props.knownIdAspectRatio }
393
538
  : {}),
539
+ ...(props.documentTypeKind !== undefined
540
+ ? { documentTypeKind: props.documentTypeKind }
541
+ : {}),
394
542
  }), [
395
543
  props.captureType,
396
544
  uiState.overlayState,
@@ -403,16 +551,23 @@ export function UseSmileIDCaptureScreen(props) {
403
551
  isDocumentCapture,
404
552
  manualShutterAvailable,
405
553
  galleryAvailable,
554
+ documentSide,
406
555
  props.knownIdAspectRatio,
556
+ props.documentTypeKind,
407
557
  ]);
408
558
  // Stable element so the camera tree survives unrelated state updates.
409
- const cameraPreview = useMemo(() => (_jsxs(_Fragment, { children: [_jsx(ForceMaxBrightness, { enabled: props.captureType === CaptureType.selfie }), previewReady ? (_jsx(Camera, { ref: cameraRef, style: StyleSheet.absoluteFill, device: device, isActive: true, ...(format ? { format } : {}), ...(props.captureType === CaptureType.document
559
+ const cameraPreview = useMemo(() => (_jsxs(_Fragment, { children: [_jsx(ForceMaxBrightness, {}), previewReady ? (_jsx(Camera, { ref: cameraRef, style: StyleSheet.absoluteFill, device: device, isActive: true, ...(format ? { format } : {}), ...(props.captureType === CaptureType.document
410
560
  ? { photo: true }
411
561
  : {}),
412
562
  // Gravity-based — keeps reporting tilt even when UI orientation is locked to portrait.
413
563
  outputOrientation: "device", onOutputOrientationChanged: (orientation) => {
414
564
  setDeviceOrientationDegrees(orientationToDegrees(orientation));
415
- }, ...(streaming ? { frameProcessor } : {}), testID: "si_capture_camera_preview" })) : (_jsx(View, { style: [
565
+ },
566
+ // The LOCKED interface orientation (follows the screen even under a
567
+ // programmatic lock) — the axis the saved document uprights to.
568
+ onPreviewOrientationChanged: (orientation) => {
569
+ setPreviewOrientationDegrees(orientationToDegrees(orientation));
570
+ }, ...(streaming ? { frameProcessor } : {}), testID: "si_capture_camera_preview" }, cameraOrientationKey)) : (_jsx(View, { style: [
416
571
  StyleSheet.absoluteFill,
417
572
  { backgroundColor: theme.colors.offBlack },
418
573
  ], testID: "si_capture_camera_placeholder" }))] })),
@@ -425,8 +580,9 @@ export function UseSmileIDCaptureScreen(props) {
425
580
  streaming,
426
581
  frameProcessor,
427
582
  theme.colors.offBlack,
583
+ cameraOrientationKey,
428
584
  ]);
429
- return (_jsxs(_Fragment, { children: [_jsx(StatusBar, { translucent: true, backgroundColor: "transparent" }), _jsx(UseSmileIDCaptureContent, { state: contentState, captureProgress: uiState.captureProgress, cameraPreview: cameraPreview, onStartCapture: handleStart, startCaptureEnabled: canStart, onBack: props.onBack, showAttribution: showAttribution, startButton: props.startButton, ...(isDocumentCapture
585
+ return (_jsxs(UseSmileIDThemeProvider, { value: theme, children: [_jsx(StatusBar, { translucent: true, backgroundColor: "transparent" }), _jsx(UseSmileIDCaptureContent, { state: contentState, captureProgress: uiState.captureProgress, cameraPreview: cameraPreview, onStartCapture: handleStart, startCaptureEnabled: canStart, onBack: props.onBack, showAttribution: showAttribution, startButton: props.startButton, onViewportLayout: handleViewportLayout, ...(isDocumentCapture
430
586
  ? {
431
587
  onManualShutter: handleManualShutter,
432
588
  onGalleryUpload: handleGalleryPick,
@@ -1 +1 @@
1
- {"version":3,"file":"use_smile_id_capture_screen.js","sourceRoot":"","sources":["../../../src/presentation/screen/use_smile_id_capture_screen.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use_smile_id_capture_screen.js","sourceRoot":"","sources":["../../../src/presentation/screen/use_smile_id_capture_screen.tsx"],"names":[],"mappings":"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"}