@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
@@ -1,7 +1,8 @@
1
1
  /**
2
- * Lazy bridges to optional `expo-device` / `expo-network` peer deps.
3
- * Both are declared `optional: true` in `peerDependenciesMeta` so
4
- * partners who don't need richer metadata don't pay the install cost.
2
+ * Lazy bridges to optional `expo-device` / `expo-network` / `expo-battery` /
3
+ * `expo-cellular` peer deps. All are declared `optional: true` in
4
+ * `peerDependenciesMeta` so partners who don't need richer metadata don't pay
5
+ * the install cost.
5
6
  *
6
7
  * **Pattern:** dynamic `require()` wrapped in `try/catch`. Metro
7
8
  * tolerates the missing-module case without failing the build —
@@ -15,6 +16,11 @@
15
16
  */
16
17
  let _device;
17
18
  let _network;
19
+ let _battery;
20
+ let _cellular;
21
+ let _asyncStorage;
22
+ let _sensors;
23
+ let _location;
18
24
  /**
19
25
  * Load `expo-device`'s native module once, cached for the process
20
26
  * lifetime. Returns `null` if the native module isn't linked into
@@ -93,9 +99,108 @@ export function loadExpoNetwork() {
93
99
  }
94
100
  return _network;
95
101
  }
102
+ /**
103
+ * Load `expo-battery`'s native module once, cached for the process lifetime.
104
+ * Returns `null` when the native module isn't linked (graceful degradation).
105
+ * Mirrors [loadExpoDevice] — pulls the raw `ExpoBattery` native module via
106
+ * `expo-modules-core`'s non-throwing `requireOptionalNativeModule`.
107
+ */
108
+ export function loadExpoBattery() {
109
+ if (_battery !== undefined)
110
+ return _battery;
111
+ try {
112
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
113
+ const core = require("expo-modules-core");
114
+ _battery =
115
+ core.requireOptionalNativeModule?.("ExpoBattery") ?? null;
116
+ }
117
+ catch {
118
+ _battery = null;
119
+ }
120
+ return _battery;
121
+ }
122
+ /**
123
+ * Load `expo-cellular`'s native module once, cached for the process lifetime.
124
+ * Returns `null` when the native module isn't linked (graceful degradation).
125
+ * The raw `ExpoCellular` module exposes the `carrier` name constant directly.
126
+ */
127
+ export function loadExpoCellular() {
128
+ if (_cellular !== undefined)
129
+ return _cellular;
130
+ try {
131
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
132
+ const core = require("expo-modules-core");
133
+ _cellular =
134
+ core.requireOptionalNativeModule?.("ExpoCellular") ??
135
+ null;
136
+ }
137
+ catch {
138
+ _cellular = null;
139
+ }
140
+ return _cellular;
141
+ }
142
+ /**
143
+ * Load `@react-native-async-storage/async-storage` once, cached for the process
144
+ * lifetime. Returns `null` when the package isn't installed (graceful
145
+ * degradation). Unlike the expo modules, async-storage's JS entry does not throw
146
+ * at import when the native side is missing, so a plain `require` (wrapped in
147
+ * try/catch for the not-installed case) is sufficient; per-call native errors
148
+ * are handled by the caller. Backed by Android `SharedPreferences` /
149
+ * iOS `NSUserDefaults`.
150
+ */
151
+ export function loadAsyncStorage() {
152
+ if (_asyncStorage !== undefined)
153
+ return _asyncStorage;
154
+ try {
155
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
156
+ const module = require("@react-native-async-storage/async-storage");
157
+ _asyncStorage = module.default ?? module;
158
+ }
159
+ catch {
160
+ _asyncStorage = null;
161
+ }
162
+ return _asyncStorage;
163
+ }
164
+ /**
165
+ * Load `expo-sensors` for accelerometer sampling. Returns `null` when the peer
166
+ * dep isn't installed/linked (graceful degradation — device_positions omitted).
167
+ */
168
+ export function loadExpoSensors() {
169
+ if (_sensors !== undefined)
170
+ return _sensors;
171
+ try {
172
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
173
+ _sensors = require("expo-sensors");
174
+ }
175
+ catch {
176
+ _sensors = null;
177
+ }
178
+ return _sensors;
179
+ }
180
+ /**
181
+ * Load `expo-location` for the geolocation metadata. Returns `null` when the
182
+ * peer dep isn't installed/linked (graceful degradation — geolocation omitted).
183
+ */
184
+ export function loadExpoLocation() {
185
+ if (_location !== undefined)
186
+ return _location;
187
+ try {
188
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
189
+ _location = require("expo-location");
190
+ }
191
+ catch {
192
+ _location = null;
193
+ }
194
+ return _location;
195
+ }
96
196
  /** Test-only seam — clears the module cache so tests can re-evaluate. */
97
197
  export function _resetOptionalModulesForTesting() {
98
198
  _device = undefined;
99
199
  _network = undefined;
200
+ _battery = undefined;
201
+ _cellular = undefined;
202
+ _asyncStorage = undefined;
203
+ _sensors = undefined;
204
+ _location = undefined;
100
205
  }
101
206
  //# sourceMappingURL=optional_native_modules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"optional_native_modules.js","sourceRoot":"","sources":["../../src/metadata/optional_native_modules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkBH,IAAI,OAAwC,CAAC;AAC7C,IAAI,QAA0C,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,cAAc;IAC5B,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAC1C,IAAI,CAAC;QACH,iEAAiE;QACjE,MAAM,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAEvC,CAAC;QACF,OAAO;YACL,IAAI,CAAC,2BAA2B,EAAE,CAAe,YAAY,CAAC,IAAI,IAAI,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,IAAI,CAAC;QACH,iEAAiE;QACjE,MAAM,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAEvC,CAAC;QACF,QAAQ;YACN,IAAI,CAAC,2BAA2B,EAAE,CAAgB,aAAa,CAAC,IAAI,IAAI,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,+BAA+B;IAC7C,OAAO,GAAG,SAAS,CAAC;IACpB,QAAQ,GAAG,SAAS,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"optional_native_modules.js","sourceRoot":"","sources":["../../src/metadata/optional_native_modules.ts"],"names":[],"mappings":"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"}
@@ -5,10 +5,12 @@
5
5
  * server and partner dashboards parse it positionally; `toEntries()` produces it.
6
6
  *
7
7
  * Omission rules: always-present (`sdk_version`, `sdk`, `device_os`,
8
- * `device_model`, `app_name`, `session_id`, `proxy`, `proximity_sensor`,
9
- * `security_policy_version`); conditional strings dropped when empty; conditional
10
- * integers dropped when zero; booleans always included, stringified.
8
+ * `device_model`, `app_name`, `session_id`, `security_policy_version`);
9
+ * conditional strings dropped when empty; conditional integers dropped when
10
+ * zero; `proxy` / `proximity_sensor` emitted only when actually measured
11
+ * (undefined = unknown, dropped) — a measured `false` is kept.
11
12
  */
13
+ import type { Geolocation } from "./geolocation";
12
14
  export type MetadataEntry = {
13
15
  readonly name: string;
14
16
  readonly value: string;
@@ -23,7 +25,8 @@ export type UseSmileIDMetadataFields = {
23
25
  readonly clientIp: string;
24
26
  readonly networkConnection: string;
25
27
  readonly carrierInfo: string;
26
- readonly proxy: boolean;
28
+ /** Proxy detection result → `proxy`. Undefined when never measured (omitted); a measured `false` is emitted. */
29
+ readonly proxy?: boolean;
27
30
  readonly timezone: string;
28
31
  readonly locale: string;
29
32
  readonly screenResolution: string;
@@ -32,7 +35,8 @@ export type UseSmileIDMetadataFields = {
32
35
  readonly systemArchitecture: string;
33
36
  readonly numberOfCameras: number;
34
37
  readonly hostApplication: string;
35
- readonly proximitySensor: boolean;
38
+ /** Proximity-sensor availability → `proximity_sensor`. Undefined when never measured (omitted); a measured `false` is emitted. */
39
+ readonly proximitySensor?: boolean;
36
40
  readonly securityPolicyVersion: string;
37
41
  /** Android Keystore security level (`KeyInfo.getSecurityLevel()`, `-2`…`2`) → `supports_hardware_attestation`. Undefined on iOS and before warm-up resolves. */
38
42
  readonly hardwareAttestationSecurityLevel?: number;
@@ -42,10 +46,44 @@ export type UseSmileIDMetadataFields = {
42
46
  readonly supportsAppAttest?: boolean;
43
47
  /** Capture-param provenance → `sdk_config_source`: `"sdk_config"` when a valid JWT claim was decoded, else `"default"`. */
44
48
  readonly sdkConfigSource: string;
45
- /** Resolved selfie width (px) → `image_width`: `sdk_config.selfie.width` override (when width+height > 0) or SDK default (480). Omitted when zero. */
49
+ /** Resolved selfie capture target dimensions → `selfie_image_dimensions` `"WxH"`: `sdk_config.selfie` override or SDK default (480x640). Dropped when a side is 0. */
46
50
  readonly imageWidth: number;
47
- /** Resolved selfie height (px) → `image_height`: `sdk_config.selfie.height` override (when width+height > 0) or SDK default (640). Omitted when zero. */
48
51
  readonly imageHeight: number;
52
+ /** Resolved liveness capture target dimensions → `liveness_image_dimensions` `"WxH"`. Dropped when a side is 0. */
53
+ readonly livenessImageWidth: number;
54
+ readonly livenessImageHeight: number;
55
+ /** Device UTC offset in minutes (may be negative or 0) → `timezone_offset`. Undefined omits. */
56
+ readonly timezoneOffsetMinutes?: number;
57
+ /** `android.os.Build.*` device-context strings; empty on iOS except `buildDevice` (iOS hardware id). Omitted when empty. */
58
+ readonly buildBrand?: string;
59
+ readonly buildDevice?: string;
60
+ readonly buildFingerprint?: string;
61
+ readonly buildProduct?: string;
62
+ /** `Build.HARDWARE` (Android) → `build_hardware`; empty on iOS. Omitted when empty. */
63
+ readonly buildHardware?: string;
64
+ /** Install source / store (Android `PackageManager` install source) → `build_source`. Omitted when empty. */
65
+ readonly buildSource?: string;
66
+ /** Host app package id (Android) / bundle id (iOS), computed natively → `package_name`. Omitted when empty. */
67
+ readonly packageName?: string;
68
+ /** Stable per-device fingerprint (Android `ANDROID_ID` / iOS `identifierForVendor`) → `fingerprint`. Omitted when empty. */
69
+ readonly fingerprint?: string;
70
+ /** Whether an active VPN is present → `vpn`. Omitted when undefined. */
71
+ readonly vpn?: boolean;
72
+ /** App-signing certificate SHA-256 digests (Android only) → `certificate_digest` (JSON-array string). Omitted when empty. */
73
+ readonly certificateDigest?: readonly string[];
74
+ /** ISO-8601 local timestamp captured at request build time → `local_time_of_enrolment`. */
75
+ readonly localTimeOfEnrolment?: string;
76
+ /** Charging plug status → `battery_status` (`-1` unknown, `0` on-battery, `1` plugged in). Omitted when undefined. */
77
+ readonly batteryStatus?: number;
78
+ /** Wrapper SDK identity → `wrapper_name` / `wrapper_version` (`react_native_expo` + SDK version). Omitted when empty. */
79
+ readonly wrapperName?: string;
80
+ readonly wrapperVersion?: string;
81
+ /** Persisted SDK launch count → `sdk_launch_count`. Omitted when undefined or zero. */
82
+ readonly sdkLaunchCount?: number;
83
+ /** Last-known location → `geolocation` (JSON-object string). Omitted when undefined. */
84
+ readonly geolocation?: Geolocation;
85
+ /** Obfuscated device security-state signal (computed natively) → `privileges`. Omitted when undefined/blank. */
86
+ readonly privileges?: string;
49
87
  };
50
88
  export declare class UseSmileIDMetadata {
51
89
  private readonly _fields;
@@ -1 +1 @@
1
- {"version":3,"file":"use_smile_id_metadata.d.ts","sourceRoot":"","sources":["../../src/metadata/use_smile_id_metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,gKAAgK;IAChK,QAAQ,CAAC,gCAAgC,CAAC,EAAE,MAAM,CAAC;IACnD,yIAAyI;IACzI,QAAQ,CAAC,2BAA2B,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzD,0GAA0G;IAC1G,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,2HAA2H;IAC3H,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,sJAAsJ;IACtJ,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,yJAAyJ;IACzJ,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2B;gBAGvD,MAAM,EAAE,wBAAwB,EAChC,YAAY,GAAE,SAAS,aAAa,EAAO;IAM7C,0EAA0E;IAC1E,QAAQ,IAAI,wBAAwB;IAIpC;;;;OAIG;IACH,qBAAqB,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,kBAAkB;IAO1E;;;;OAIG;IACH,SAAS,IAAI,SAAS,aAAa,EAAE;CA2EtC"}
1
+ {"version":3,"file":"use_smile_id_metadata.d.ts","sourceRoot":"","sources":["../../src/metadata/use_smile_id_metadata.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,10 @@
5
5
  * server and partner dashboards parse it positionally; `toEntries()` produces it.
6
6
  *
7
7
  * Omission rules: always-present (`sdk_version`, `sdk`, `device_os`,
8
- * `device_model`, `app_name`, `session_id`, `proxy`, `proximity_sensor`,
9
- * `security_policy_version`); conditional strings dropped when empty; conditional
10
- * integers dropped when zero; booleans always included, stringified.
8
+ * `device_model`, `app_name`, `session_id`, `security_policy_version`);
9
+ * conditional strings dropped when empty; conditional integers dropped when
10
+ * zero; `proxy` / `proximity_sensor` emitted only when actually measured
11
+ * (undefined = unknown, dropped) — a measured `false` is kept.
11
12
  */
12
13
  export class UseSmileIDMetadata {
13
14
  _fields;
@@ -39,7 +40,7 @@ export class UseSmileIDMetadata {
39
40
  toEntries() {
40
41
  const fields = this._fields;
41
42
  const entries = [];
42
- // Always-present: SDK constants, booleans, sessionId (UUID), and
43
+ // Always-present: SDK constants, sessionId (UUID), and
43
44
  // device_os/device_model/app_name (emitted even when empty). The rest
44
45
  // below use the drop-when-empty rule.
45
46
  entries.push({ name: "sdk_version", value: fields.sdkVersion });
@@ -48,12 +49,16 @@ export class UseSmileIDMetadata {
48
49
  entries.push({ name: "device_model", value: fields.deviceModel });
49
50
  entries.push({ name: "app_name", value: fields.appName });
50
51
  entries.push({ name: "session_id", value: fields.sessionId });
51
- // Always-present booleans (stringified, never empty by construction)
52
- entries.push({ name: "proxy", value: String(fields.proxy) });
53
- entries.push({
54
- name: "proximity_sensor",
55
- value: String(fields.proximitySensor),
56
- });
52
+ // Measured booleans — omitted when never measured; a measured false is kept.
53
+ if (fields.proxy !== undefined) {
54
+ entries.push({ name: "proxy", value: String(fields.proxy) });
55
+ }
56
+ if (fields.proximitySensor !== undefined) {
57
+ entries.push({
58
+ name: "proximity_sensor",
59
+ value: String(fields.proximitySensor),
60
+ });
61
+ }
57
62
  // Conditional strings — omitted when empty
58
63
  pushIfNonEmpty(entries, "client_ip", fields.clientIp);
59
64
  pushIfNonEmpty(entries, "network_connection", fields.networkConnection);
@@ -95,9 +100,76 @@ export class UseSmileIDMetadata {
95
100
  }
96
101
  // sdk_config provenance — always-present string, never empty.
97
102
  entries.push({ name: "sdk_config_source", value: fields.sdkConfigSource });
98
- // Resolved selfie dimensions — omitted when zero.
99
- pushIfNonZero(entries, "image_width", fields.imageWidth);
100
- pushIfNonZero(entries, "image_height", fields.imageHeight);
103
+ // Resolved selfie / liveness capture target dimensions as "WxH"; each dropped when a side is 0.
104
+ if (fields.imageWidth > 0 && fields.imageHeight > 0) {
105
+ entries.push({
106
+ name: "selfie_image_dimensions",
107
+ value: `${fields.imageWidth}x${fields.imageHeight}`,
108
+ });
109
+ }
110
+ if (fields.livenessImageWidth > 0 && fields.livenessImageHeight > 0) {
111
+ entries.push({
112
+ name: "liveness_image_dimensions",
113
+ value: `${fields.livenessImageWidth}x${fields.livenessImageHeight}`,
114
+ });
115
+ }
116
+ // UTC offset in minutes (may be negative or 0); emitted whenever resolved.
117
+ if (fields.timezoneOffsetMinutes !== undefined) {
118
+ entries.push({
119
+ name: "timezone_offset",
120
+ value: String(fields.timezoneOffsetMinutes),
121
+ });
122
+ }
123
+ // Build / device-context strings — omitted when empty.
124
+ pushIfNonEmpty(entries, "build_brand", fields.buildBrand ?? "");
125
+ pushIfNonEmpty(entries, "build_device", fields.buildDevice ?? "");
126
+ pushIfNonEmpty(entries, "build_fingerprint", fields.buildFingerprint ?? "");
127
+ pushIfNonEmpty(entries, "build_product", fields.buildProduct ?? "");
128
+ pushIfNonEmpty(entries, "build_hardware", fields.buildHardware ?? "");
129
+ pushIfNonEmpty(entries, "build_source", fields.buildSource ?? "");
130
+ pushIfNonEmpty(entries, "package_name", fields.packageName ?? "");
131
+ pushIfNonEmpty(entries, "fingerprint", fields.fingerprint ?? "");
132
+ pushIfNonEmpty(entries, "local_time_of_enrolment", fields.localTimeOfEnrolment ?? "");
133
+ // Charging status — omitted until resolved. `0` (on battery) is meaningful.
134
+ if (fields.batteryStatus !== undefined) {
135
+ entries.push({
136
+ name: "battery_status",
137
+ value: String(fields.batteryStatus),
138
+ });
139
+ }
140
+ // VPN presence — omitted until resolved; `false` is meaningful.
141
+ if (fields.vpn !== undefined) {
142
+ entries.push({ name: "vpn", value: String(fields.vpn) });
143
+ }
144
+ // App-signing certificate digests (Android) — JSON-array string, omitted when empty.
145
+ if (fields.certificateDigest !== undefined &&
146
+ fields.certificateDigest.length > 0) {
147
+ entries.push({
148
+ name: "certificate_digest",
149
+ value: JSON.stringify(fields.certificateDigest),
150
+ });
151
+ }
152
+ // Wrapper SDK identity — omitted when empty.
153
+ pushIfNonEmpty(entries, "wrapper_name", fields.wrapperName ?? "");
154
+ pushIfNonEmpty(entries, "wrapper_version", fields.wrapperVersion ?? "");
155
+ // Persisted launch count — omitted until resolved or when zero.
156
+ if (fields.sdkLaunchCount !== undefined && fields.sdkLaunchCount > 0) {
157
+ entries.push({
158
+ name: "sdk_launch_count",
159
+ value: String(fields.sdkLaunchCount),
160
+ });
161
+ }
162
+ // Last-known location — JSON-object string, omitted when unresolved.
163
+ if (fields.geolocation !== undefined) {
164
+ entries.push({
165
+ name: "geolocation",
166
+ value: JSON.stringify(fields.geolocation),
167
+ });
168
+ }
169
+ // Obfuscated device privileges signal — emitted verbatim, omitted when blank.
170
+ if (fields.privileges !== undefined && fields.privileges.length > 0) {
171
+ entries.push({ name: "privileges", value: fields.privileges });
172
+ }
101
173
  // Flow-state entries appended after the device-metadata fields.
102
174
  entries.push(...this._extraEntries);
103
175
  return Object.freeze(entries);
@@ -1 +1 @@
1
- {"version":3,"file":"use_smile_id_metadata.js","sourceRoot":"","sources":["../../src/metadata/use_smile_id_metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use_smile_id_metadata.js","sourceRoot":"","sources":["../../src/metadata/use_smile_id_metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAgFH,MAAM,OAAO,kBAAkB;IACZ,OAAO,CAA2B;IAClC,aAAa,CAA2B;IAEzD,YACE,MAAgC,EAChC,eAAyC,EAAE;QAE3C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IAED,0EAA0E;IAC1E,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CAAC,KAA+B;QACnD,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE;YAC1C,GAAG,IAAI,CAAC,aAAa;YACrB,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,MAAM,OAAO,GAAoB,EAAE,CAAC;QAEpC,uDAAuD;QACvD,sEAAsE;QACtE,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAE9D,6EAA6E;QAC7E,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,kBAAkB;gBACxB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;aACtC,CAAC,CAAC;QACL,CAAC;QAED,2CAA2C;QAC3C,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtD,cAAc,CAAC,OAAO,EAAE,oBAAoB,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACxE,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5D,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrD,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACjD,cAAc,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACtE,cAAc,CAAC,OAAO,EAAE,oBAAoB,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACxE,cAAc,CAAC,OAAO,EAAE,qBAAqB,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC1E,cAAc,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;QAEpE,2CAA2C;QAC3C,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3D,aAAa,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;QAEpE,yBAAyB;QACzB,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,yBAAyB;YAC/B,KAAK,EAAE,MAAM,CAAC,qBAAqB;SACpC,CAAC,CAAC;QAEH,4EAA4E;QAC5E,+EAA+E;QAC/E,IAAI,MAAM,CAAC,gCAAgC,KAAK,SAAS,EAAE,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,+BAA+B;gBACrC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,gCAAgC,CAAC;aACvD,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,2BAA2B,CAAC;YACjD,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,+BAA+B;oBACrC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;iBAC7B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,qBAAqB;gBAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC;aACxC,CAAC,CAAC;QACL,CAAC;QAED,8DAA8D;QAC9D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;QAC3E,gGAAgG;QAChG,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,yBAAyB;gBAC/B,KAAK,EAAE,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,WAAW,EAAE;aACpD,CAAC,CAAC;QACL,CAAC;QACD,IAAI,MAAM,CAAC,kBAAkB,GAAG,CAAC,IAAI,MAAM,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,2BAA2B;gBACjC,KAAK,EAAE,GAAG,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,mBAAmB,EAAE;aACpE,CAAC,CAAC;QACL,CAAC;QACD,2EAA2E;QAC3E,IAAI,MAAM,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC;QAED,uDAAuD;QACvD,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QAChE,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAClE,cAAc,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;QAC5E,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QACpE,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;QACtE,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAClE,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAClE,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QACjE,cAAc,CACZ,OAAO,EACP,yBAAyB,EACzB,MAAM,CAAC,oBAAoB,IAAI,EAAE,CAClC,CAAC;QACF,4EAA4E;QAC5E,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;aACpC,CAAC,CAAC;QACL,CAAC;QAED,gEAAgE;QAChE,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,qFAAqF;QACrF,IACE,MAAM,CAAC,iBAAiB,KAAK,SAAS;YACtC,MAAM,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EACnC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC;aAChD,CAAC,CAAC;QACL,CAAC;QAED,6CAA6C;QAC7C,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAClE,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;QAExE,gEAAgE;QAChE,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,kBAAkB;gBACxB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;aACrC,CAAC,CAAC;QACL,CAAC;QAED,qEAAqE;QACrE,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC;aAC1C,CAAC,CAAC;QACL,CAAC;QAED,8EAA8E;QAC9E,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,gEAAgE;QAChE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAEpC,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;CACF;AAED,SAAS,cAAc,CACrB,OAAwB,EACxB,IAAY,EACZ,KAAa;IAEb,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CACpB,OAAwB,EACxB,IAAY,EACZ,KAAa;IAEb,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC"}
@@ -43,6 +43,16 @@ export declare class UseSmileIDMetadataFactory implements MetadataProvider {
43
43
  private readonly _hostApplication;
44
44
  private readonly _systemArchitecture;
45
45
  private readonly _memoryInfoMb;
46
+ private readonly _buildBrand;
47
+ private readonly _buildDevice;
48
+ private readonly _buildFingerprint;
49
+ private readonly _buildProduct;
50
+ private readonly _carrierInfo;
51
+ private _batteryStatus?;
52
+ private _sdkLaunchCount?;
53
+ private _geolocation?;
54
+ private _privileges?;
55
+ private _deviceIntegrity?;
46
56
  private _clientIp;
47
57
  private _networkConnection;
48
58
  private _hardwareAttestation?;
@@ -62,6 +72,33 @@ export declare class UseSmileIDMetadataFactory implements MetadataProvider {
62
72
  */
63
73
  warmup(): Promise<void>;
64
74
  private _warmupAsync;
75
+ /**
76
+ * Resolve the last-known location (expo-location) into the cache — only when a permission
77
+ * is already granted (never prompts). Fail-open: leaves `_geolocation` unset otherwise.
78
+ */
79
+ private _warmUpGeolocation;
80
+ /**
81
+ * Resolve the obfuscated device privileges signal from the native bridge into the cache.
82
+ * Fail-open: `PrivilegesProvider` returns `"{}"` when the native module is unavailable.
83
+ */
84
+ private _warmUpPrivileges;
85
+ /**
86
+ * Resolve the native device-integrity signals (fingerprint, package name, vpn, build
87
+ * hardware, install source, cert digests) from the bridge into the cache. Fail-open:
88
+ * `DeviceIntegrityProvider` returns empty/undefined values when the native module is absent.
89
+ */
90
+ private _warmUpDeviceIntegrity;
91
+ /**
92
+ * Read, increment, and persist the SDK launch counter via async-storage.
93
+ * Fail-open: leaves `_sdkLaunchCount` unset when the package is absent.
94
+ */
95
+ private _warmUpLaunchCount;
96
+ /**
97
+ * Resolve the charging state (expo-battery) into the cache, mapped to the
98
+ * cross-platform plug status: `-1` unknown, `0` on battery, `1` plugged in.
99
+ * Fail-open: leaves `_batteryStatus` unset when the module is absent.
100
+ */
101
+ private _warmUpBatteryStatus;
65
102
  /**
66
103
  * Resolve the per-session hardware-attestation snapshot. Called from the
67
104
  * constructor as fire-and-forget. Android mints a Keystore-backed key
@@ -1 +1 @@
1
- {"version":3,"file":"use_smile_id_metadata_factory.d.ts","sourceRoot":"","sources":["../../src/metadata/use_smile_id_metadata_factory.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AA+C1D,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,kBAAkB,CAAC;IAEhD;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,qBAAa,yBAA0B,YAAW,gBAAgB;IAEhE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAKvC,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,kBAAkB,CAAM;IAIhC,OAAO,CAAC,oBAAoB,CAAC,CAAsB;gBAEvC,OAAO,GAAE,sBAA2B;IAkDhD;;;;;OAKG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;;;;OAKG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;YAIf,YAAY;IA0B1B;;;;OAIG;YACW,0BAA0B;IAWxC,yDAAyD;IACzD,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,kBAAkB;CAqEhD;AA2DD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAqB1C"}
1
+ {"version":3,"file":"use_smile_id_metadata_factory.d.ts","sourceRoot":"","sources":["../../src/metadata/use_smile_id_metadata_factory.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AASjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAkD1D,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,kBAAkB,CAAC;IAEhD;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,qBAAa,yBAA0B,YAAW,gBAAgB;IAEhE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAIvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAGtC,OAAO,CAAC,cAAc,CAAC,CAAS;IAGhC,OAAO,CAAC,eAAe,CAAC,CAAS;IAGjC,OAAO,CAAC,YAAY,CAAC,CAAc;IAGnC,OAAO,CAAC,WAAW,CAAC,CAAS;IAI7B,OAAO,CAAC,gBAAgB,CAAC,CAAyB;IAKlD,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,kBAAkB,CAAM;IAIhC,OAAO,CAAC,oBAAoB,CAAC,CAAsB;gBAEvC,OAAO,GAAE,sBAA2B;IAgEhD;;;;;OAKG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;;;;OAKG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;YAIf,YAAY;IAkC1B;;;OAGG;YACW,kBAAkB;IAKhC;;;OAGG;YACW,iBAAiB;IAK/B;;;;OAIG;YACW,sBAAsB;IAIpC;;;OAGG;YACW,kBAAkB;IAahC;;;;OAIG;YACW,oBAAoB;IAsBlC;;;;OAIG;YACW,0BAA0B;IAWxC,yDAAyD;IACzD,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,kBAAkB;CA2GhD;AAsFD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAqB1C"}