@smileid/usesmileid 12.0.0 → 12.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +1 -1
  3. package/dist/camera/camera_defaults.d.ts +2 -0
  4. package/dist/camera/camera_defaults.d.ts.map +1 -1
  5. package/dist/camera/camera_defaults.js +2 -0
  6. package/dist/camera/camera_defaults.js.map +1 -1
  7. package/dist/core/exception/agent_mode_with_enhanced_liveness_exception.d.ts +11 -0
  8. package/dist/core/exception/agent_mode_with_enhanced_liveness_exception.d.ts.map +1 -0
  9. package/dist/core/exception/agent_mode_with_enhanced_liveness_exception.js +17 -0
  10. package/dist/core/exception/agent_mode_with_enhanced_liveness_exception.js.map +1 -0
  11. package/dist/core/exception/capture_validation_exceptions.d.ts +1 -0
  12. package/dist/core/exception/capture_validation_exceptions.d.ts.map +1 -1
  13. package/dist/core/exception/capture_validation_exceptions.js +1 -0
  14. package/dist/core/exception/capture_validation_exceptions.js.map +1 -1
  15. package/dist/core/exception/flow_exceptions.d.ts +4 -2
  16. package/dist/core/exception/flow_exceptions.d.ts.map +1 -1
  17. package/dist/core/exception/flow_exceptions.js +3 -2
  18. package/dist/core/exception/flow_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/missing_job_type_exception.d.ts +1 -3
  24. package/dist/core/exception/missing_job_type_exception.d.ts.map +1 -1
  25. package/dist/core/exception/missing_job_type_exception.js +2 -4
  26. package/dist/core/exception/missing_job_type_exception.js.map +1 -1
  27. package/dist/core/exception/use_smile_id_error_code.d.ts +1 -0
  28. package/dist/core/exception/use_smile_id_error_code.d.ts.map +1 -1
  29. package/dist/core/exception/use_smile_id_error_code.js +1 -0
  30. package/dist/core/exception/use_smile_id_error_code.js.map +1 -1
  31. package/dist/core/models/config.d.ts +19 -0
  32. package/dist/core/models/config.d.ts.map +1 -1
  33. package/dist/core/models/document_type.d.ts +1 -1
  34. package/dist/core/models/document_type.d.ts.map +1 -1
  35. package/dist/core/models/document_type.js +2 -2
  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/data/api/interceptors/smile_auth_interceptor.d.ts.map +1 -1
  44. package/dist/data/api/interceptors/smile_auth_interceptor.js +3 -17
  45. package/dist/data/api/interceptors/smile_auth_interceptor.js.map +1 -1
  46. package/dist/data/api/smile_id_api.d.ts +5 -1
  47. package/dist/data/api/smile_id_api.d.ts.map +1 -1
  48. package/dist/data/api/smile_id_api.js +30 -27
  49. package/dist/data/api/smile_id_api.js.map +1 -1
  50. package/dist/data/dsl/builder/retry_config_builder.d.ts +4 -4
  51. package/dist/data/dsl/builder/retry_config_builder.d.ts.map +1 -1
  52. package/dist/data/dsl/builder/retry_config_builder.js +6 -6
  53. package/dist/data/dsl/builder/retry_config_builder.js.map +1 -1
  54. package/dist/data/model/job_request.d.ts +28 -12
  55. package/dist/data/model/job_request.d.ts.map +1 -1
  56. package/dist/data/model/token_payload.d.ts +78 -0
  57. package/dist/data/model/token_payload.d.ts.map +1 -0
  58. package/dist/data/model/token_payload.js +132 -0
  59. package/dist/data/model/token_payload.js.map +1 -0
  60. package/dist/data/model/user_details_payload.d.ts +39 -0
  61. package/dist/data/model/user_details_payload.d.ts.map +1 -0
  62. package/dist/data/model/user_details_payload.js +53 -0
  63. package/dist/data/model/user_details_payload.js.map +1 -0
  64. package/dist/data/smile_id_urls.d.ts +1 -1
  65. package/dist/data/smile_id_urls.js +1 -1
  66. package/dist/data/smile_id_urls.js.map +1 -1
  67. package/dist/data/util/retry_util.d.ts +1 -1
  68. package/dist/data/util/retry_util.d.ts.map +1 -1
  69. package/dist/data/util/retry_util.js +5 -0
  70. package/dist/data/util/retry_util.js.map +1 -1
  71. package/dist/data/util/use_smile_id_token_decoder.d.ts +15 -3
  72. package/dist/data/util/use_smile_id_token_decoder.d.ts.map +1 -1
  73. package/dist/data/util/use_smile_id_token_decoder.js +20 -8
  74. package/dist/data/util/use_smile_id_token_decoder.js.map +1 -1
  75. package/dist/index.d.ts +2 -2
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +2 -2
  78. package/dist/index.js.map +1 -1
  79. package/dist/l10n/strings_en.d.ts +4 -1
  80. package/dist/l10n/strings_en.d.ts.map +1 -1
  81. package/dist/l10n/strings_en.js +4 -1
  82. package/dist/l10n/strings_en.js.map +1 -1
  83. package/dist/l10n/use_smile_id_localizations.d.ts +10 -0
  84. package/dist/l10n/use_smile_id_localizations.d.ts.map +1 -1
  85. package/dist/l10n/use_smile_id_localizations.js +59 -3
  86. package/dist/l10n/use_smile_id_localizations.js.map +1 -1
  87. package/dist/metadata/builder_configuration.d.ts +5 -0
  88. package/dist/metadata/builder_configuration.d.ts.map +1 -1
  89. package/dist/metadata/builder_configuration.js +1 -0
  90. package/dist/metadata/builder_configuration.js.map +1 -1
  91. package/dist/metadata/metadata_configuration_mappers.d.ts +2 -3
  92. package/dist/metadata/metadata_configuration_mappers.d.ts.map +1 -1
  93. package/dist/metadata/metadata_configuration_mappers.js +13 -6
  94. package/dist/metadata/metadata_configuration_mappers.js.map +1 -1
  95. package/dist/metadata/use_smile_id_metadata_factory.d.ts.map +1 -1
  96. package/dist/metadata/use_smile_id_metadata_factory.js +14 -5
  97. package/dist/metadata/use_smile_id_metadata_factory.js.map +1 -1
  98. package/dist/presentation/components/use_smile_id_button.d.ts.map +1 -1
  99. package/dist/presentation/components/use_smile_id_button.js +8 -2
  100. package/dist/presentation/components/use_smile_id_button.js.map +1 -1
  101. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.d.ts +5 -2
  102. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.d.ts.map +1 -1
  103. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.js +8 -3
  104. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.js.map +1 -1
  105. package/dist/presentation/components/use_smile_id_instructions_hero.d.ts.map +1 -1
  106. package/dist/presentation/components/use_smile_id_instructions_hero.js +8 -3
  107. package/dist/presentation/components/use_smile_id_instructions_hero.js.map +1 -1
  108. package/dist/presentation/flow/dsl/builder/config_builder.d.ts +16 -0
  109. package/dist/presentation/flow/dsl/builder/config_builder.d.ts.map +1 -1
  110. package/dist/presentation/flow/dsl/builder/config_builder.js +18 -0
  111. package/dist/presentation/flow/dsl/builder/config_builder.js.map +1 -1
  112. package/dist/presentation/flow/dsl/builder/screens_builder.d.ts +6 -12
  113. package/dist/presentation/flow/dsl/builder/screens_builder.d.ts.map +1 -1
  114. package/dist/presentation/flow/dsl/builder/screens_builder.js +7 -12
  115. package/dist/presentation/flow/dsl/builder/screens_builder.js.map +1 -1
  116. package/dist/presentation/flow/dsl/use_smile_id_flow_builder.d.ts.map +1 -1
  117. package/dist/presentation/flow/dsl/use_smile_id_flow_builder.js +23 -1
  118. package/dist/presentation/flow/dsl/use_smile_id_flow_builder.js.map +1 -1
  119. package/dist/presentation/flow/flow_navigation_manager.d.ts +22 -3
  120. package/dist/presentation/flow/flow_navigation_manager.d.ts.map +1 -1
  121. package/dist/presentation/flow/flow_navigation_manager.js +84 -46
  122. package/dist/presentation/flow/flow_navigation_manager.js.map +1 -1
  123. package/dist/presentation/flow/model/instructions_defaults.d.ts.map +1 -1
  124. package/dist/presentation/flow/model/instructions_defaults.js +1 -1
  125. package/dist/presentation/flow/model/instructions_defaults.js.map +1 -1
  126. package/dist/presentation/flow/screen/orchestrated_capture_screen.d.ts.map +1 -1
  127. package/dist/presentation/flow/screen/orchestrated_capture_screen.js +13 -3
  128. package/dist/presentation/flow/screen/orchestrated_capture_screen.js.map +1 -1
  129. package/dist/presentation/flow/screen/orchestrated_consent_screen.d.ts.map +1 -1
  130. package/dist/presentation/flow/screen/orchestrated_consent_screen.js +3 -1
  131. package/dist/presentation/flow/screen/orchestrated_consent_screen.js.map +1 -1
  132. package/dist/presentation/flow/screen/orchestrated_preview_screen.d.ts.map +1 -1
  133. package/dist/presentation/flow/screen/orchestrated_preview_screen.js +0 -8
  134. package/dist/presentation/flow/screen/orchestrated_preview_screen.js.map +1 -1
  135. package/dist/presentation/flow/screen/orchestrated_processing_screen.d.ts.map +1 -1
  136. package/dist/presentation/flow/screen/orchestrated_processing_screen.js +25 -5
  137. package/dist/presentation/flow/screen/orchestrated_processing_screen.js.map +1 -1
  138. package/dist/presentation/flow/use_smile_id_flow.d.ts.map +1 -1
  139. package/dist/presentation/flow/use_smile_id_flow.js +45 -12
  140. package/dist/presentation/flow/use_smile_id_flow.js.map +1 -1
  141. package/dist/presentation/flow/validation/flow_validator.d.ts +16 -2
  142. package/dist/presentation/flow/validation/flow_validator.d.ts.map +1 -1
  143. package/dist/presentation/flow/validation/flow_validator.js +61 -47
  144. package/dist/presentation/flow/validation/flow_validator.js.map +1 -1
  145. package/dist/presentation/flow/validation/job_type_validator.d.ts +7 -0
  146. package/dist/presentation/flow/validation/job_type_validator.d.ts.map +1 -1
  147. package/dist/presentation/flow/validation/job_type_validator.js +52 -27
  148. package/dist/presentation/flow/validation/job_type_validator.js.map +1 -1
  149. package/dist/presentation/flow/validation/user_details_validator.d.ts +9 -0
  150. package/dist/presentation/flow/validation/user_details_validator.d.ts.map +1 -0
  151. package/dist/presentation/flow/validation/user_details_validator.js +40 -0
  152. package/dist/presentation/flow/validation/user_details_validator.js.map +1 -0
  153. package/dist/presentation/screen/helpers/capture_screen_helpers.d.ts.map +1 -1
  154. package/dist/presentation/screen/helpers/capture_screen_helpers.js +1 -0
  155. package/dist/presentation/screen/helpers/capture_screen_helpers.js.map +1 -1
  156. package/dist/presentation/screen/helpers/capture_ui_state.d.ts +6 -6
  157. package/dist/presentation/screen/helpers/capture_ui_state.d.ts.map +1 -1
  158. package/dist/presentation/screen/helpers/capture_ui_state.js +19 -19
  159. package/dist/presentation/screen/helpers/capture_ui_state.js.map +1 -1
  160. package/dist/presentation/screen/helpers/ess_turn_haptics.d.ts +2 -2
  161. package/dist/presentation/screen/helpers/ess_turn_haptics.d.ts.map +1 -1
  162. package/dist/presentation/screen/helpers/ess_turn_haptics.js +6 -6
  163. package/dist/presentation/screen/helpers/ess_turn_haptics.js.map +1 -1
  164. package/dist/presentation/screen/helpers/scan_state_to_overlay_state.d.ts +5 -5
  165. package/dist/presentation/screen/helpers/scan_state_to_overlay_state.d.ts.map +1 -1
  166. package/dist/presentation/screen/helpers/scan_state_to_overlay_state.js +11 -11
  167. package/dist/presentation/screen/helpers/scan_state_to_overlay_state.js.map +1 -1
  168. package/dist/presentation/screen/helpers/use_capture_orientation_lock.d.ts +13 -3
  169. package/dist/presentation/screen/helpers/use_capture_orientation_lock.d.ts.map +1 -1
  170. package/dist/presentation/screen/helpers/use_capture_orientation_lock.js +48 -6
  171. package/dist/presentation/screen/helpers/use_capture_orientation_lock.js.map +1 -1
  172. package/dist/presentation/screen/use_smile_id_capture_screen.d.ts +4 -2
  173. package/dist/presentation/screen/use_smile_id_capture_screen.d.ts.map +1 -1
  174. package/dist/presentation/screen/use_smile_id_capture_screen.js +90 -23
  175. package/dist/presentation/screen/use_smile_id_capture_screen.js.map +1 -1
  176. package/dist/presentation/screen/use_smile_id_consent_screen.d.ts +7 -0
  177. package/dist/presentation/screen/use_smile_id_consent_screen.d.ts.map +1 -1
  178. package/dist/presentation/screen/use_smile_id_consent_screen.js +6 -5
  179. package/dist/presentation/screen/use_smile_id_consent_screen.js.map +1 -1
  180. package/dist/presentation/screen/use_smile_id_document_back_instructions.d.ts.map +1 -1
  181. package/dist/presentation/screen/use_smile_id_document_back_instructions.js +5 -13
  182. package/dist/presentation/screen/use_smile_id_document_back_instructions.js.map +1 -1
  183. package/dist/presentation/screen/use_smile_id_document_preview_screen.js +1 -1
  184. package/dist/presentation/screen/use_smile_id_document_preview_screen.js.map +1 -1
  185. package/dist/presentation/screen/use_smile_id_preview_screen.d.ts +1 -21
  186. package/dist/presentation/screen/use_smile_id_preview_screen.d.ts.map +1 -1
  187. package/dist/presentation/screen/use_smile_id_preview_screen.js +3 -14
  188. package/dist/presentation/screen/use_smile_id_preview_screen.js.map +1 -1
  189. package/dist/presentation/screen/use_smile_id_processing_screen.js +1 -1
  190. package/dist/presentation/screen/use_smile_id_processing_screen.js.map +1 -1
  191. package/dist/presentation/utils/locale_utils.d.ts +10 -4
  192. package/dist/presentation/utils/locale_utils.d.ts.map +1 -1
  193. package/dist/presentation/utils/locale_utils.js +13 -5
  194. package/dist/presentation/utils/locale_utils.js.map +1 -1
  195. package/dist/testing/fake_face_analyzer.d.ts +43 -0
  196. package/dist/testing/fake_face_analyzer.d.ts.map +1 -0
  197. package/dist/testing/fake_face_analyzer.js +52 -0
  198. package/dist/testing/fake_face_analyzer.js.map +1 -0
  199. package/dist/testing/index.d.ts +5 -0
  200. package/dist/testing/index.d.ts.map +1 -0
  201. package/dist/testing/index.js +7 -0
  202. package/dist/testing/index.js.map +1 -0
  203. package/dist/testing/scenario_expectations.d.ts +28 -0
  204. package/dist/testing/scenario_expectations.d.ts.map +1 -0
  205. package/dist/testing/scenario_expectations.js +65 -0
  206. package/dist/testing/scenario_expectations.js.map +1 -0
  207. package/dist/testing/scenario_loader.d.ts +11 -0
  208. package/dist/testing/scenario_loader.d.ts.map +1 -0
  209. package/dist/testing/scenario_loader.js +64 -0
  210. package/dist/testing/scenario_loader.js.map +1 -0
  211. package/dist/testing/scripted_scan_results.d.ts +17 -0
  212. package/dist/testing/scripted_scan_results.d.ts.map +1 -0
  213. package/dist/testing/scripted_scan_results.js +52 -0
  214. package/dist/testing/scripted_scan_results.js.map +1 -0
  215. package/package.json +11 -4
  216. package/src/__tests__/dsl.test.ts +51 -1
  217. package/src/__tests__/react_native_mock.tsx +22 -0
  218. package/src/__tests__/setup_react_native.ts +17 -2
  219. package/src/__tests__/snapshots/__snapshots__/screens_structural.test.tsx.snap +5267 -0
  220. package/src/__tests__/snapshots/screens_structural.test.tsx +230 -0
  221. package/src/camera/__tests__/camera_permissions.test.ts +72 -0
  222. package/src/camera/__tests__/camera_system_focus.test.ts +173 -0
  223. package/src/camera/__tests__/use_smile_id_camera_preview.test.tsx +461 -0
  224. package/src/camera/__tests__/use_smile_id_camera_system.test.ts +103 -0
  225. package/src/camera/__tests__/use_smile_id_frame_stream_hook.test.tsx +229 -0
  226. package/src/camera/camera_defaults.ts +3 -0
  227. package/src/core/exception/__tests__/builder_validation_exceptions.test.ts +81 -0
  228. package/src/core/exception/agent_mode_with_enhanced_liveness_exception.ts +20 -0
  229. package/src/core/exception/capture_validation_exceptions.ts +1 -0
  230. package/src/core/exception/flow_exceptions.test.ts +10 -0
  231. package/src/core/exception/flow_exceptions.ts +3 -2
  232. package/src/core/exception/index.ts +1 -0
  233. package/src/core/exception/missing_job_type_exception.ts +2 -4
  234. package/src/core/exception/use_smile_id_error_code.ts +1 -0
  235. package/src/core/models/__tests__/document_type.test.ts +2 -2
  236. package/src/core/models/__tests__/flow_models.test.ts +26 -0
  237. package/src/core/models/config.ts +22 -0
  238. package/src/core/models/document_type.ts +2 -2
  239. package/src/core/models/global_privacy_control.ts +45 -0
  240. package/src/core/models/network_config.ts +2 -2
  241. package/src/data/api/__tests__/smile_id_api.test.ts +275 -1
  242. package/src/data/api/interceptors/__tests__/credential_header_redaction.test.ts +144 -0
  243. package/src/data/api/interceptors/__tests__/gzip_interceptor.test.ts +83 -0
  244. package/src/data/api/interceptors/smile_auth_interceptor.ts +3 -18
  245. package/src/data/api/smile_id_api.ts +36 -49
  246. package/src/data/compression/__tests__/payload_compressor_real_jpeg.test.ts +6 -2
  247. package/src/data/dsl/__tests__/use_smile_id_network_builder.test.ts +157 -0
  248. package/src/data/dsl/builder/__tests__/config_builders.test.ts +62 -0
  249. package/src/data/dsl/builder/retry_config_builder.ts +6 -6
  250. package/src/data/factory/__tests__/retry_gzip_mac_composition.test.ts +163 -0
  251. package/src/data/factory/__tests__/signed_job_submission_headers.test.ts +1 -1
  252. package/src/data/model/__tests__/token_payload.test.ts +224 -0
  253. package/src/data/model/__tests__/user_details_payload.test.ts +100 -0
  254. package/src/data/model/job_request.ts +27 -12
  255. package/src/data/model/token_payload.ts +182 -0
  256. package/src/data/model/user_details_payload.ts +84 -0
  257. package/src/data/repository/__tests__/network_retries.test.ts +1 -1
  258. package/src/data/repository/__tests__/repository_dispatch.test.ts +366 -0
  259. package/src/data/repository/__tests__/use_smile_id_repository.test.ts +1 -1
  260. package/src/data/security/__tests__/request_canonicalizer.test.ts +132 -0
  261. package/src/data/security/__tests__/signing_crypto.test.ts +203 -0
  262. package/src/data/smile_id_urls.ts +1 -1
  263. package/src/data/util/__tests__/retry_util.test.ts +25 -0
  264. package/src/data/util/__tests__/use_smile_id_token_decoder.test.ts +179 -0
  265. package/src/data/util/retry_util.ts +9 -1
  266. package/src/data/util/use_smile_id_token_decoder.ts +29 -8
  267. package/src/index.ts +6 -4
  268. package/src/l10n/__tests__/use_smile_id_localizations.test.ts +122 -5
  269. package/src/l10n/__tests__/use_smile_id_localizations_provider.test.tsx +112 -0
  270. package/src/l10n/__tests__/use_smile_id_localizations_surface.test.ts +231 -0
  271. package/src/l10n/strings_en.ts +5 -1
  272. package/src/l10n/use_smile_id_localizations.ts +80 -3
  273. package/src/metadata/__tests__/device_orientation_sampling.test.ts +165 -0
  274. package/src/metadata/__tests__/geolocation.test.ts +150 -0
  275. package/src/metadata/__tests__/metadata_configuration_mappers.test.ts +39 -0
  276. package/src/metadata/__tests__/metadata_configuration_objects.test.ts +2 -1
  277. package/src/metadata/__tests__/metadata_device_context.test.ts +3 -3
  278. package/src/metadata/__tests__/metadata_device_os_android.test.ts +18 -0
  279. package/src/metadata/__tests__/metadata_golden_fixture.json +1 -1
  280. package/src/metadata/__tests__/metadata_payload_golden.test.ts +4 -4
  281. package/src/metadata/__tests__/optional_native_modules.test.ts +234 -0
  282. package/src/metadata/__tests__/use_smile_id_metadata.test.ts +1 -1
  283. package/src/metadata/__tests__/use_smile_id_metadata_factory.test.ts +615 -0
  284. package/src/metadata/builder_configuration.ts +6 -0
  285. package/src/metadata/metadata_configuration_mappers.ts +21 -7
  286. package/src/metadata/use_smile_id_metadata_factory.ts +17 -6
  287. package/src/presentation/assets/si_document_green_book_hero_animation.json +1 -4668
  288. package/src/presentation/assets/si_document_hero_animation.json +1 -4799
  289. package/src/presentation/assets/si_document_hero_back_animation.json +1 -2039
  290. package/src/presentation/assets/si_document_passport_hero_animation.json +1 -14491
  291. package/src/presentation/assets/si_ess_all_directions_hero_animation.json +1 -0
  292. package/src/presentation/assets/si_ess_animation_all_directions.json +1 -6589
  293. package/src/presentation/assets/si_selfie_hero_animation.json +1 -1439
  294. package/src/presentation/assets/si_smile_to_capture_animation.json +1 -1439
  295. package/src/presentation/components/__tests__/use_smile_id_content_card.test.tsx +112 -0
  296. package/src/presentation/components/__tests__/use_smile_id_enhanced_smart_selfie_clip.test.tsx +9 -4
  297. package/src/presentation/components/__tests__/use_smile_id_face_oval_image.test.tsx +190 -0
  298. package/src/presentation/components/__tests__/use_smile_id_instructions_hero.test.tsx +44 -0
  299. package/src/presentation/components/__tests__/use_smile_id_learn_more_content.test.tsx +159 -0
  300. package/src/presentation/components/__tests__/use_smile_id_processing_center_indicator.test.tsx +88 -0
  301. package/src/presentation/components/use_smile_id_button.tsx +7 -2
  302. package/src/presentation/components/use_smile_id_enhanced_smart_selfie_clip.tsx +9 -3
  303. package/src/presentation/components/use_smile_id_instructions_hero.tsx +10 -0
  304. package/src/presentation/flow/__tests__/document_flow_navigation.test.ts +3 -3
  305. package/src/presentation/flow/__tests__/flow_navigation_manager.test.ts +372 -1
  306. package/src/presentation/flow/__tests__/use_smile_id_flow.test.tsx +651 -0
  307. package/src/presentation/flow/dsl/__tests__/use_smile_id_builder_component.test.tsx +120 -0
  308. package/src/presentation/flow/dsl/builder/__tests__/config_builder.test.ts +25 -0
  309. package/src/presentation/flow/dsl/builder/config_builder.ts +21 -0
  310. package/src/presentation/flow/dsl/builder/screens_builder.ts +7 -12
  311. package/src/presentation/flow/dsl/use_smile_id_flow_builder.ts +27 -1
  312. package/src/presentation/flow/flow_navigation_manager.ts +108 -93
  313. package/src/presentation/flow/graph/__tests__/screen_renderer.test.tsx +102 -0
  314. package/src/presentation/flow/model/instructions_defaults.ts +1 -1
  315. package/src/presentation/flow/screen/__tests__/orchestrated_capture_screen.test.tsx +836 -0
  316. package/src/presentation/flow/screen/__tests__/orchestrated_consent_screen.test.tsx +165 -0
  317. package/src/presentation/flow/screen/__tests__/orchestrated_instructions_screen.test.tsx +163 -0
  318. package/src/presentation/flow/screen/__tests__/orchestrated_preview_screen.test.tsx +224 -0
  319. package/src/presentation/flow/screen/__tests__/orchestrated_processing_screen.test.tsx +338 -0
  320. package/src/presentation/flow/screen/orchestrated_capture_screen.tsx +18 -3
  321. package/src/presentation/flow/screen/orchestrated_consent_screen.tsx +5 -0
  322. package/src/presentation/flow/screen/orchestrated_preview_screen.tsx +0 -12
  323. package/src/presentation/flow/screen/orchestrated_processing_screen.tsx +42 -5
  324. package/src/presentation/flow/use_smile_id_flow.tsx +63 -12
  325. package/src/presentation/flow/validation/__tests__/flow_validator.test.ts +219 -1
  326. package/src/presentation/flow/validation/__tests__/job_type_validator.test.ts +200 -0
  327. package/src/presentation/flow/validation/flow_validator.ts +85 -57
  328. package/src/presentation/flow/validation/job_type_validator.ts +73 -39
  329. package/src/presentation/flow/validation/user_details_validator.ts +53 -0
  330. package/src/presentation/screen/__tests__/capture_ui_state.test.ts +66 -47
  331. package/src/presentation/screen/__tests__/ess_turn_haptics.test.ts +15 -11
  332. package/src/presentation/screen/__tests__/feedback_copy_table.test.ts +145 -0
  333. package/src/presentation/screen/__tests__/scan_state_to_overlay_state.test.ts +47 -27
  334. package/src/presentation/screen/__tests__/use_smile_id_capture_screen.test.tsx +524 -14
  335. package/src/presentation/screen/__tests__/use_smile_id_document_back_instructions.test.tsx +4 -2
  336. package/src/presentation/screen/__tests__/use_smile_id_permission_screen.test.tsx +68 -0
  337. package/src/presentation/screen/__tests__/use_smile_id_preview_screen.test.tsx +10 -40
  338. package/src/presentation/screen/helpers/__tests__/use_capture_orientation_lock.test.tsx +212 -0
  339. package/src/presentation/screen/helpers/capture_screen_helpers.ts +1 -0
  340. package/src/presentation/screen/helpers/capture_ui_state.ts +27 -27
  341. package/src/presentation/screen/helpers/ess_turn_haptics.ts +9 -9
  342. package/src/presentation/screen/helpers/scan_state_to_overlay_state.ts +13 -13
  343. package/src/presentation/screen/helpers/use_capture_orientation_lock.ts +69 -7
  344. package/src/presentation/screen/use_smile_id_capture_screen.tsx +107 -28
  345. package/src/presentation/screen/use_smile_id_consent_screen.tsx +16 -5
  346. package/src/presentation/screen/use_smile_id_document_back_instructions.tsx +14 -23
  347. package/src/presentation/screen/use_smile_id_document_preview_screen.tsx +1 -1
  348. package/src/presentation/screen/use_smile_id_preview_screen.tsx +13 -45
  349. package/src/presentation/screen/use_smile_id_processing_screen.tsx +1 -1
  350. package/src/presentation/theme/__tests__/use_use_smile_id_fonts.test.tsx +166 -0
  351. package/src/presentation/utils/__tests__/locale_utils.test.ts +46 -5
  352. package/src/presentation/utils/locale_utils.ts +13 -4
  353. package/src/testing/__tests__/fake_face_analyzer.test.ts +42 -0
  354. package/src/testing/__tests__/scenario_expectations.test.ts +110 -0
  355. package/src/testing/__tests__/scenario_loader.test.ts +64 -0
  356. package/src/testing/fake_face_analyzer.ts +82 -0
  357. package/src/testing/index.ts +15 -0
  358. package/src/testing/scenario_expectations.ts +87 -0
  359. package/src/testing/scenario_loader.ts +83 -0
  360. package/src/testing/scripted_scan_results.ts +66 -0
  361. package/dist/presentation/components/use_smile_id_face_silhouette_overlay.d.ts +0 -15
  362. package/dist/presentation/components/use_smile_id_face_silhouette_overlay.d.ts.map +0 -1
  363. package/dist/presentation/components/use_smile_id_face_silhouette_overlay.js +0 -19
  364. package/dist/presentation/components/use_smile_id_face_silhouette_overlay.js.map +0 -1
  365. package/src/presentation/components/use_smile_id_face_silhouette_overlay.tsx +0 -27
@@ -1,5 +1,6 @@
1
1
  import axios from "axios";
2
2
  import { SmileIDUrls } from "../smile_id_urls";
3
+ import { userDetailsPayloadToWire } from "../model/user_details_payload";
3
4
  import { SmileAuthInterceptor } from "./interceptors/smile_auth_interceptor";
4
5
  import { attachLoggingInterceptor } from "./interceptors/logging_interceptor";
5
6
  import { REQUEST_MAC_OPT_IN_KEY } from "./interceptors/smile_request_mac_interceptor";
@@ -64,7 +65,7 @@ export class SmileIDAPI {
64
65
  */
65
66
  async smartSelfieEnrollment(request) {
66
67
  const formData = this._buildSelfieFormData(request);
67
- appendJsonPart(formData, "user_details", userDetailsToWire(request.userDetails));
68
+ appendUserDetailsPart(formData, request);
68
69
  this._appendPartnerConfigParts(formData);
69
70
  this._appendConsentAndMetadata(formData, request.consent, request.metadata);
70
71
  return this._postMultipart("/v3/registration", formData);
@@ -78,7 +79,7 @@ export class SmileIDAPI {
78
79
  async smartSelfieAuthentication(request) {
79
80
  const formData = this._buildSelfieFormData(request);
80
81
  appendStringPart(formData, "user_id", request.userId);
81
- appendJsonPart(formData, "user_details", userDetailsToWire(request.userDetails));
82
+ appendUserDetailsPart(formData, request);
82
83
  this._appendPartnerConfigParts(formData);
83
84
  this._appendConsentAndMetadata(formData, request.consent, request.metadata);
84
85
  return this._postMultipart("/v3/authentication", formData);
@@ -89,7 +90,7 @@ export class SmileIDAPI {
89
90
  // multipart/form-data`.
90
91
  const formData = new FormData();
91
92
  this._appendIdFields(formData, request.params);
92
- appendJsonPart(formData, "user_details", userDetailsToWire(request.userDetails));
93
+ appendUserDetailsPart(formData, request);
93
94
  if (request.params.bankCode) {
94
95
  appendStringPart(formData, "bank_code", request.params.bankCode);
95
96
  }
@@ -105,7 +106,7 @@ export class SmileIDAPI {
105
106
  const useEnrolled = request.params.useEnrolledImage;
106
107
  const formData = this._buildSelfieFormData(request);
107
108
  this._appendIdFields(formData, request.params);
108
- appendJsonPart(formData, "user_details", userDetailsToWire(request.userDetails));
109
+ appendUserDetailsPart(formData, request);
109
110
  if (useEnrolled) {
110
111
  appendStringPart(formData, "use_enrolled_image", "true");
111
112
  }
@@ -133,7 +134,7 @@ export class SmileIDAPI {
133
134
  if (request.idType) {
134
135
  appendStringPart(formData, "id_type", request.idType);
135
136
  }
136
- appendJsonPart(formData, "user_details", userDetailsToWire(request.userDetails));
137
+ appendUserDetailsPart(formData, request);
137
138
  this._appendPartnerConfigParts(formData);
138
139
  this._appendConsentAndMetadata(formData, request.consent, request.metadata);
139
140
  return this._postMultipart(url, formData);
@@ -218,6 +219,10 @@ export class SmileIDAPI {
218
219
  * the part with `Content-Type: application/json` causes the parser
219
220
  * to reject the part as "missing or invalid".
220
221
  *
222
+ * `consent` is `undefined` only when the token binds complete
223
+ * consent and no local source exists — the part is then omitted
224
+ * entirely and the server injects the token's consent.
225
+ *
221
226
  * The `metadata` snapshot is built by the request-construction site
222
227
  * (the flow navigation manager) and travels on the request — this
223
228
  * method serializes the snapshot it is handed rather than generating
@@ -228,12 +233,14 @@ export class SmileIDAPI {
228
233
  // wire JSON before serialization. The server validates the wire
229
234
  // shape exactly — `consent.granted` (snake_case via `granted`
230
235
  // already) and `consent.granted_at` are required.
231
- appendJsonPart(formData, "consent", {
232
- granted: consent.granted,
233
- granted_at: consent.grantedAt,
234
- notice_language: consent.noticeLanguage,
235
- notice_privacy_policy_url: consent.noticePrivacyPolicyUrl,
236
- });
236
+ if (consent !== undefined) {
237
+ appendJsonPart(formData, "consent", {
238
+ granted: consent.granted,
239
+ granted_at: consent.grantedAt,
240
+ notice_language: consent.noticeLanguage,
241
+ notice_privacy_policy_url: consent.noticePrivacyPolicyUrl,
242
+ });
243
+ }
237
244
  appendJsonPart(formData, "metadata", metadata.toEntries());
238
245
  }
239
246
  async _postMultipart(url, body) {
@@ -287,23 +294,19 @@ function mapJobSubmissionResponse(data) {
287
294
  return result;
288
295
  }
289
296
  /**
290
- * Convert `UserDetails` to the snake_case wire shape. Optional fields
291
- * are trimmed; blank values are omitted.
297
+ * Append the `user_details` JSON multipart part. The payload arrives
298
+ * pre-reduced from assembly (token-bound fields already dropped); the
299
+ * part is omitted entirely when nothing remains — or when `userDetails`
300
+ * was legitimately omitted because the token binds every required field.
292
301
  */
293
- function userDetailsToWire(details) {
294
- const wire = {
295
- given_names: details.givenNames,
296
- last_name: details.lastName,
297
- };
298
- const trimmedEmail = details.email?.trim();
299
- if (trimmedEmail) {
300
- wire["email"] = trimmedEmail;
301
- }
302
- const trimmedPhone = details.phoneNumber?.trim();
303
- if (trimmedPhone) {
304
- wire["phone_number"] = trimmedPhone;
305
- }
306
- return wire;
302
+ function appendUserDetailsPart(formData, request) {
303
+ const details = request.userDetails;
304
+ if (details === undefined)
305
+ return;
306
+ const wire = userDetailsPayloadToWire(details);
307
+ if (Object.keys(wire).length === 0)
308
+ return;
309
+ appendJsonPart(formData, "user_details", wire);
307
310
  }
308
311
  /**
309
312
  * RN-style `FormData.append` for a string part. Used as the underlying
@@ -1 +1 @@
1
- {"version":3,"file":"smile_id_api.js","sourceRoot":"","sources":["../../../src/data/api/smile_id_api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smile_id_api.js","sourceRoot":"","sources":["../../../src/data/api/smile_id_api.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,12 @@ export { RetryStrategy };
3
3
  /**
4
4
  * DSL builder for request retry behaviour.
5
5
  *
6
- * Defaults to exponential backoff with 3 attempts, 1 s initial delay,
7
- * 32 s ceiling, ±20% jitter. `fixedDelay` is honoured only when
8
- * `strategy = RetryStrategy.fixed`.
6
+ * Defaults to no retry. Set `strategy` to opt in, and the remaining fields
7
+ * then apply: 3 attempts, 1 s initial delay, 32 s ceiling, ±20% jitter.
8
+ * `fixedDelay` is honoured only when `strategy = RetryStrategy.fixed`.
9
9
  */
10
10
  export declare class RetryConfigBuilder {
11
- /** Maximum number of attempts per request, including the first. */
11
+ /** Attempts per request including the first; applies once `strategy` opts in. */
12
12
  maxAttempts: number;
13
13
  /** Backoff strategy between attempts: exponential, fixed, or none. */
14
14
  strategy: RetryStrategy;
@@ -1 +1 @@
1
- {"version":3,"file":"retry_config_builder.d.ts","sourceRoot":"","sources":["../../../../src/data/dsl/builder/retry_config_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,KAAK,WAAW,EACjB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAC7B,mEAAmE;IACnE,WAAW,SAAK;IAEhB,sEAAsE;IACtE,QAAQ,EAAE,aAAa,CAA6B;IAEpD,uEAAuE;IACvE,YAAY,SAAK;IAEjB;;;OAGG;IACH,UAAU,SAAK;IAEf;;;OAGG;IACH,QAAQ,SAAM;IAEd;;;OAGG;IACH,MAAM,SAAO;IAEb,oEAAoE;IACpE,UAAU,SAAK;IAEf,KAAK,IAAI,WAAW;CAWrB"}
1
+ {"version":3,"file":"retry_config_builder.d.ts","sourceRoot":"","sources":["../../../../src/data/dsl/builder/retry_config_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,KAAK,WAAW,EACjB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAC7B,iFAAiF;IACjF,WAAW,SAAK;IAEhB,sEAAsE;IACtE,QAAQ,EAAE,aAAa,CAAsB;IAE7C,uEAAuE;IACvE,YAAY,SAAK;IAEjB;;;OAGG;IACH,UAAU,SAAK;IAEf;;;OAGG;IACH,QAAQ,SAAM;IAEd;;;OAGG;IACH,MAAM,SAAO;IAEb,oEAAoE;IACpE,UAAU,SAAK;IAEf,KAAK,IAAI,WAAW;CAWrB"}
@@ -3,15 +3,15 @@ export { RetryStrategy };
3
3
  /**
4
4
  * DSL builder for request retry behaviour.
5
5
  *
6
- * Defaults to exponential backoff with 3 attempts, 1 s initial delay,
7
- * 32 s ceiling, ±20% jitter. `fixedDelay` is honoured only when
8
- * `strategy = RetryStrategy.fixed`.
6
+ * Defaults to no retry. Set `strategy` to opt in, and the remaining fields
7
+ * then apply: 3 attempts, 1 s initial delay, 32 s ceiling, ±20% jitter.
8
+ * `fixedDelay` is honoured only when `strategy = RetryStrategy.fixed`.
9
9
  */
10
10
  export class RetryConfigBuilder {
11
- /** Maximum number of attempts per request, including the first. */
11
+ /** Attempts per request including the first; applies once `strategy` opts in. */
12
12
  maxAttempts = 3;
13
13
  /** Backoff strategy between attempts: exponential, fixed, or none. */
14
- strategy = RetryStrategy.exponential;
14
+ strategy = RetryStrategy.none;
15
15
  /** Delay before the first retry, in seconds (exponential strategy). */
16
16
  initialDelay = 1;
17
17
  /**
@@ -33,7 +33,7 @@ export class RetryConfigBuilder {
33
33
  fixedDelay = 1;
34
34
  build() {
35
35
  return Object.freeze({
36
- maxAttempts: this.maxAttempts,
36
+ maxAttempts: this.strategy === RetryStrategy.none ? 1 : this.maxAttempts,
37
37
  strategy: this.strategy,
38
38
  initialDelay: this.initialDelay,
39
39
  multiplier: this.multiplier,
@@ -1 +1 @@
1
- {"version":3,"file":"retry_config_builder.js","sourceRoot":"","sources":["../../../../src/data/dsl/builder/retry_config_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,GAEd,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB;;;;;;GAMG;AACH,MAAM,OAAO,kBAAkB;IAC7B,mEAAmE;IACnE,WAAW,GAAG,CAAC,CAAC;IAEhB,sEAAsE;IACtE,QAAQ,GAAkB,aAAa,CAAC,WAAW,CAAC;IAEpD,uEAAuE;IACvE,YAAY,GAAG,CAAC,CAAC;IAEjB;;;OAGG;IACH,UAAU,GAAG,CAAC,CAAC;IAEf;;;OAGG;IACH,QAAQ,GAAG,EAAE,CAAC;IAEd;;;OAGG;IACH,MAAM,GAAG,GAAG,CAAC;IAEb,oEAAoE;IACpE,UAAU,GAAG,CAAC,CAAC;IAEf,KAAK;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"retry_config_builder.js","sourceRoot":"","sources":["../../../../src/data/dsl/builder/retry_config_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,GAEd,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB;;;;;;GAMG;AACH,MAAM,OAAO,kBAAkB;IAC7B,iFAAiF;IACjF,WAAW,GAAG,CAAC,CAAC;IAEhB,sEAAsE;IACtE,QAAQ,GAAkB,aAAa,CAAC,IAAI,CAAC;IAE7C,uEAAuE;IACvE,YAAY,GAAG,CAAC,CAAC;IAEjB;;;OAGG;IACH,UAAU,GAAG,CAAC,CAAC;IAEf;;;OAGG;IACH,QAAQ,GAAG,EAAE,CAAC;IAEd;;;OAGG;IACH,MAAM,GAAG,GAAG,CAAC;IAEb,oEAAoE;IACpE,UAAU,GAAG,CAAC,CAAC;IAEf,KAAK;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,IAAI,CAAC,QAAQ,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW;YACxE,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,4 +1,5 @@
1
- import type { ConsentInformation, EnhancedKYCParams, BiometricKYCParams, UserDetails } from "../../core/models/params";
1
+ import type { ConsentInformation, EnhancedKYCParams, BiometricKYCParams } from "../../core/models/params";
2
+ import type { UserDetailsPayload } from "./user_details_payload";
2
3
  import { JobType } from "../../core/models/job_type";
3
4
  import type { UseSmileIDMetadata } from "../../metadata/use_smile_id_metadata";
4
5
  /**
@@ -6,10 +7,11 @@ import type { UseSmileIDMetadata } from "../../metadata/use_smile_id_metadata";
6
7
  * narrows the union and tells the repository which API method to
7
8
  * dispatch to.
8
9
  *
9
- * Every variant intersects [BaseJobRequest], which carries the two
10
+ * Every variant intersects [BaseJobRequest], which carries the
10
11
  * fields shared by all submissions: the partner-captured `consent`
11
- * record and the per-submission `metadata` snapshot. Variants keep a
12
- * narrowed `jobType` literal so the union still discriminates.
12
+ * record, the per-submission `metadata` snapshot, and the decoded
13
+ * token bindings. Variants keep a narrowed `jobType` literal so the
14
+ * union still discriminates.
13
15
  *
14
16
  * `metadata` is built at the request-construction site (the flow
15
17
  * navigation manager) and travels on the request itself — the API
@@ -17,14 +19,22 @@ import type { UseSmileIDMetadata } from "../../metadata/use_smile_id_metadata";
17
19
  * multipart part rather than generating the snapshot at submit time.
18
20
  */
19
21
  export interface BaseJobRequest {
20
- readonly consent: ConsentInformation;
22
+ /**
23
+ * Local consent record (captured on the consent screen or
24
+ * pre-supplied via the builder). Omitted only when no local source
25
+ * exists AND the token binds complete consent — the API layer then
26
+ * omits the `consent` multipart part and the server injects the
27
+ * token's consent.
28
+ */
29
+ readonly consent?: ConsentInformation;
21
30
  readonly metadata: UseSmileIDMetadata;
22
31
  }
23
32
  export type SmartSelfieEnrollmentRequest = BaseJobRequest & {
24
33
  readonly jobType: typeof JobType.smartSelfieEnrollment;
25
34
  readonly selfieImage: string;
26
35
  readonly livenessImages: readonly string[];
27
- readonly userDetails: UserDetails;
36
+ /** Omitted when the token binds every required field, or reduced to the unbound remainder. */
37
+ readonly userDetails?: UserDetailsPayload;
28
38
  /**
29
39
  * Screen-level enhanced-liveness intent marker. The wire path is
30
40
  * always `/v3/registration` (and `/v3/authentication` on the auth
@@ -51,7 +61,8 @@ export type SmartSelfieAuthenticationRequest = BaseJobRequest & {
51
61
  readonly jobType: typeof JobType.smartSelfieAuthentication;
52
62
  readonly selfieImage: string;
53
63
  readonly livenessImages: readonly string[];
54
- readonly userDetails: UserDetails;
64
+ /** Omitted when the token binds every required field, or reduced to the unbound remainder. */
65
+ readonly userDetails?: UserDetailsPayload;
55
66
  /**
56
67
  * The `user_id` returned by a prior enrollment — the v3
57
68
  * `/v3/authentication` endpoint requires it so the server can match
@@ -68,7 +79,8 @@ export type SmartSelfieAuthenticationRequest = BaseJobRequest & {
68
79
  export type EnhancedKycRequest = BaseJobRequest & {
69
80
  readonly jobType: typeof JobType.enhancedKyc;
70
81
  readonly params: EnhancedKYCParams;
71
- readonly userDetails: UserDetails;
82
+ /** Omitted when the token binds every required field, or reduced to the unbound remainder. */
83
+ readonly userDetails?: UserDetailsPayload;
72
84
  };
73
85
  /**
74
86
  * BVN submission stub. The variant exists in the discriminated union
@@ -80,14 +92,16 @@ export type EnhancedKycRequest = BaseJobRequest & {
80
92
  export type BvnRequest = BaseJobRequest & {
81
93
  readonly jobType: typeof JobType.bvn;
82
94
  readonly params: EnhancedKYCParams;
83
- readonly userDetails: UserDetails;
95
+ /** Omitted when the token binds every required field, or reduced to the unbound remainder. */
96
+ readonly userDetails?: UserDetailsPayload;
84
97
  };
85
98
  export type BiometricKycRequest = BaseJobRequest & {
86
99
  readonly jobType: typeof JobType.biometricKyc;
87
100
  readonly selfieImage: string;
88
101
  readonly livenessImages: readonly string[];
89
102
  readonly params: BiometricKYCParams;
90
- readonly userDetails: UserDetails;
103
+ /** Omitted when the token binds every required field, or reduced to the unbound remainder. */
104
+ readonly userDetails?: UserDetailsPayload;
91
105
  /** See `SmartSelfieEnrollmentRequest.expectedLivenessImageCount`. */
92
106
  readonly expectedLivenessImageCount: number;
93
107
  };
@@ -102,7 +116,8 @@ export type DocumentVerificationRequest = BaseJobRequest & {
102
116
  readonly country: string;
103
117
  /** Optional — the server classifies the document when omitted. */
104
118
  readonly idType?: string;
105
- readonly userDetails: UserDetails;
119
+ /** Omitted when the token binds every required field, or reduced to the unbound remainder. */
120
+ readonly userDetails?: UserDetailsPayload;
106
121
  /** See `SmartSelfieEnrollmentRequest.expectedLivenessImageCount`. */
107
122
  readonly expectedLivenessImageCount: number;
108
123
  };
@@ -122,7 +137,8 @@ export type EnhancedDocumentVerificationRequest = BaseJobRequest & {
122
137
  readonly backDocument?: string;
123
138
  readonly country: string;
124
139
  readonly idType: string;
125
- readonly userDetails: UserDetails;
140
+ /** Omitted when the token binds every required field, or reduced to the unbound remainder. */
141
+ readonly userDetails?: UserDetailsPayload;
126
142
  /** See `SmartSelfieEnrollmentRequest.expectedLivenessImageCount`. */
127
143
  readonly expectedLivenessImageCount: number;
128
144
  };
@@ -1 +1 @@
1
- {"version":3,"file":"job_request.d.ts","sourceRoot":"","sources":["../../../src/data/model/job_request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE/E;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;CACvC;AAED,MAAM,MAAM,4BAA4B,GAAG,cAAc,GAAG;IAC1D,QAAQ,CAAC,OAAO,EAAE,OAAO,OAAO,CAAC,qBAAqB,CAAC;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG,cAAc,GAAG;IAC9D,QAAQ,CAAC,OAAO,EAAE,OAAO,OAAO,CAAC,yBAAyB,CAAC;IAC3D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;kDAC8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,qEAAqE;IACrE,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG;IAChD,QAAQ,CAAC,OAAO,EAAE,OAAO,OAAO,CAAC,WAAW,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG;IACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG;IACjD,QAAQ,CAAC,OAAO,EAAE,OAAO,OAAO,CAAC,YAAY,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,qEAAqE;IACrE,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,cAAc,GAAG;IACzD,QAAQ,CAAC,OAAO,EAAE,OAAO,OAAO,CAAC,oBAAoB,CAAC;IACtD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,6DAA6D;IAC7D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,qEAAqE;IACrE,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;CAC7C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,mCAAmC,GAAG,cAAc,GAAG;IACjE,QAAQ,CAAC,OAAO,EAAE,OAAO,OAAO,CAAC,4BAA4B,CAAC;IAC9D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,6DAA6D;IAC7D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,qEAAqE;IACrE,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,UAAU,GAClB,4BAA4B,GAC5B,gCAAgC,GAChC,kBAAkB,GAClB,UAAU,GACV,mBAAmB,GACnB,2BAA2B,GAC3B,mCAAmC,CAAC"}
1
+ {"version":3,"file":"job_request.d.ts","sourceRoot":"","sources":["../../../src/data/model/job_request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Tolerant wire schema for the `payload` claim. Unknown keys are
4
+ * stripped; a wrong-typed field degrades to `undefined` (per-field
5
+ * `.catch`) instead of failing the whole claim.
6
+ */
7
+ export declare const tokenPayloadSchema: z.ZodObject<{
8
+ given_names: z.ZodCatch<z.ZodOptional<z.ZodString>>;
9
+ last_name: z.ZodCatch<z.ZodOptional<z.ZodString>>;
10
+ email: z.ZodCatch<z.ZodOptional<z.ZodString>>;
11
+ phone_number: z.ZodCatch<z.ZodOptional<z.ZodString>>;
12
+ consent: z.ZodCatch<z.ZodOptional<z.ZodObject<{
13
+ granted: z.ZodCatch<z.ZodOptional<z.ZodLiteral<true>>>;
14
+ granted_at: z.ZodCatch<z.ZodOptional<z.ZodString>>;
15
+ notice_language: z.ZodCatch<z.ZodOptional<z.ZodString>>;
16
+ notice_privacy_policy_url: z.ZodCatch<z.ZodOptional<z.ZodString>>;
17
+ }, z.core.$strip>>>;
18
+ }, z.core.$strip>;
19
+ /**
20
+ * Consent subfields bound into the token. Token consent always wins:
21
+ * a complete binding (see {@link isTokenConsentComplete}) supersedes
22
+ * every local consent source, and a partial binding is a build-time
23
+ * validation error naming the missing subfields (see
24
+ * {@link tokenConsentMissingSubfields}).
25
+ */
26
+ export type TokenConsent = {
27
+ /** Present (and `true`) only when the claim carried a literal `granted: true`. */
28
+ readonly granted?: boolean;
29
+ /** ISO-8601 timestamp from the claim's `granted_at`. */
30
+ readonly grantedAt?: string;
31
+ /** Language code from the claim's `notice_language`. */
32
+ readonly noticeLanguage?: string;
33
+ /** URL from the claim's `notice_privacy_policy_url`. */
34
+ readonly noticePrivacyPolicyUrl?: string;
35
+ };
36
+ /**
37
+ * Presence flags for the identity fields the token binds, parsed from
38
+ * the `payload` claim. A flag is `true` iff the claim carries the key
39
+ * with a non-empty string value (the value itself is an opaque vault
40
+ * reference — the server injects the real value at submission).
41
+ */
42
+ export type TokenPayload = {
43
+ readonly hasGivenNames: boolean;
44
+ readonly hasLastName: boolean;
45
+ readonly hasEmail: boolean;
46
+ readonly hasPhoneNumber: boolean;
47
+ readonly consent?: TokenConsent;
48
+ };
49
+ /**
50
+ * Parse a raw `payload` claim value into a `TokenPayload`, or
51
+ * `undefined` when the claim is absent or not a JSON object. Mirrors
52
+ * the `sdk_config` degradation semantics: never throws, tolerates
53
+ * unknown keys, and degrades wrong-typed fields to absent.
54
+ */
55
+ export declare function parseTokenPayload(rawClaim: unknown): TokenPayload | undefined;
56
+ /**
57
+ * Token consent is COMPLETE when `granted` is `true` and every other
58
+ * subfield is non-blank. A complete binding — granted with every
59
+ * notice subfield non-blank — satisfies the consent requirement
60
+ * without a local source. Token consent always wins, so a partial
61
+ * binding is a build-time validation error.
62
+ */
63
+ export declare function isTokenConsentComplete(consent: TokenConsent | undefined): boolean;
64
+ /**
65
+ * Wire-key names of the consent subfields the binding is missing. A
66
+ * token that carries a consent object must carry all four subfields —
67
+ * a non-empty list is a build-time validation error naming exactly
68
+ * what the token must add.
69
+ */
70
+ export declare function tokenConsentMissingSubfields(consent: TokenConsent): readonly string[];
71
+ /**
72
+ * Whether the token binds every user-detail field the SDK would
73
+ * otherwise require from the builder: `given_names` AND `last_name`
74
+ * AND at least one of `email` / `phone_number`. Only then may
75
+ * `builder.userDetails` be omitted entirely.
76
+ */
77
+ export declare function bindsRequiredUserDetails(payload: TokenPayload | undefined): boolean;
78
+ //# sourceMappingURL=token_payload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token_payload.d.ts","sourceRoot":"","sources":["../../../src/data/model/token_payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA6BxB;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;iBAO7B,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,kFAAkF;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,wDAAwD;IACxD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,wDAAwD;IACxD,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAC1C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;CACjC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAuB7E;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,YAAY,GAAG,SAAS,GAChC,OAAO,CAIT;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,YAAY,GACpB,SAAS,MAAM,EAAE,CASnB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,YAAY,GAAG,SAAS,GAChC,OAAO,CAOT"}
@@ -0,0 +1,132 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * User-detail and consent bindings delivered via the JWT auth token.
4
+ *
5
+ * The backend embeds this object under the top-level `payload` claim
6
+ * (JWT payload, base64url-decoded middle segment) when the partner
7
+ * binds user details and/or consent into the token on their backend.
8
+ * User-detail values in the claim are opaque vault references — only
9
+ * key PRESENCE is meaningful client-side. Consent subfields are
10
+ * plaintext. `country` / `id_type` / `id_number` / `callback_url` may
11
+ * also appear in the claim but are deliberately ignored.
12
+ *
13
+ * Every field is optional and every field tolerates a wrong wire type
14
+ * by degrading to absent — a malformed claim never rejects the token.
15
+ *
16
+ * Field names are a deliberate cross-SDK shared contract that
17
+ * intentionally omits the `UseSmileID` prefix. Internal — not
18
+ * re-exported from the package entrypoint (`src/index.ts`).
19
+ */
20
+ const tokenConsentClaimSchema = z.object({
21
+ /** Only a literal `true` counts — `false` or a non-boolean is never trusted as a binding. */
22
+ granted: z.literal(true).optional().catch(undefined),
23
+ granted_at: z.string().optional().catch(undefined),
24
+ notice_language: z.string().optional().catch(undefined),
25
+ notice_privacy_policy_url: z.string().optional().catch(undefined),
26
+ });
27
+ /**
28
+ * Tolerant wire schema for the `payload` claim. Unknown keys are
29
+ * stripped; a wrong-typed field degrades to `undefined` (per-field
30
+ * `.catch`) instead of failing the whole claim.
31
+ */
32
+ export const tokenPayloadSchema = z.object({
33
+ given_names: z.string().optional().catch(undefined),
34
+ last_name: z.string().optional().catch(undefined),
35
+ email: z.string().optional().catch(undefined),
36
+ phone_number: z.string().optional().catch(undefined),
37
+ /** Non-object / array consent values degrade to absent. */
38
+ consent: tokenConsentClaimSchema.optional().catch(undefined),
39
+ });
40
+ /**
41
+ * Parse a raw `payload` claim value into a `TokenPayload`, or
42
+ * `undefined` when the claim is absent or not a JSON object. Mirrors
43
+ * the `sdk_config` degradation semantics: never throws, tolerates
44
+ * unknown keys, and degrades wrong-typed fields to absent.
45
+ */
46
+ export function parseTokenPayload(rawClaim) {
47
+ if (rawClaim === null ||
48
+ typeof rawClaim !== "object" ||
49
+ Array.isArray(rawClaim)) {
50
+ return undefined;
51
+ }
52
+ const parseResult = tokenPayloadSchema.safeParse(rawClaim);
53
+ if (!parseResult.success) {
54
+ // Unreachable in practice (every field carries a `.catch`), but
55
+ // degrade gracefully to preserve the never-throws contract.
56
+ return undefined;
57
+ }
58
+ const claim = parseResult.data;
59
+ const consent = tokenConsentFromClaim(claim.consent);
60
+ return {
61
+ hasGivenNames: isPresent(claim.given_names),
62
+ hasLastName: isPresent(claim.last_name),
63
+ hasEmail: isPresent(claim.email),
64
+ hasPhoneNumber: isPresent(claim.phone_number),
65
+ ...(consent !== undefined ? { consent } : {}),
66
+ };
67
+ }
68
+ /**
69
+ * Token consent is COMPLETE when `granted` is `true` and every other
70
+ * subfield is non-blank. A complete binding — granted with every
71
+ * notice subfield non-blank — satisfies the consent requirement
72
+ * without a local source. Token consent always wins, so a partial
73
+ * binding is a build-time validation error.
74
+ */
75
+ export function isTokenConsentComplete(consent) {
76
+ return (consent !== undefined && tokenConsentMissingSubfields(consent).length === 0);
77
+ }
78
+ /**
79
+ * Wire-key names of the consent subfields the binding is missing. A
80
+ * token that carries a consent object must carry all four subfields —
81
+ * a non-empty list is a build-time validation error naming exactly
82
+ * what the token must add.
83
+ */
84
+ export function tokenConsentMissingSubfields(consent) {
85
+ const missing = [];
86
+ if (consent.granted !== true)
87
+ missing.push("granted");
88
+ if (!isNonBlank(consent.grantedAt))
89
+ missing.push("granted_at");
90
+ if (!isNonBlank(consent.noticeLanguage))
91
+ missing.push("notice_language");
92
+ if (!isNonBlank(consent.noticePrivacyPolicyUrl)) {
93
+ missing.push("notice_privacy_policy_url");
94
+ }
95
+ return missing;
96
+ }
97
+ /**
98
+ * Whether the token binds every user-detail field the SDK would
99
+ * otherwise require from the builder: `given_names` AND `last_name`
100
+ * AND at least one of `email` / `phone_number`. Only then may
101
+ * `builder.userDetails` be omitted entirely.
102
+ */
103
+ export function bindsRequiredUserDetails(payload) {
104
+ if (payload === undefined)
105
+ return false;
106
+ return (payload.hasGivenNames &&
107
+ payload.hasLastName &&
108
+ (payload.hasEmail || payload.hasPhoneNumber));
109
+ }
110
+ function tokenConsentFromClaim(claim) {
111
+ if (claim === undefined)
112
+ return undefined;
113
+ const consent = {
114
+ ...(claim.granted === true ? { granted: true } : {}),
115
+ ...(claim.granted_at !== undefined ? { grantedAt: claim.granted_at } : {}),
116
+ ...(claim.notice_language !== undefined
117
+ ? { noticeLanguage: claim.notice_language }
118
+ : {}),
119
+ ...(claim.notice_privacy_policy_url !== undefined
120
+ ? { noticePrivacyPolicyUrl: claim.notice_privacy_policy_url }
121
+ : {}),
122
+ };
123
+ // An empty consent object binds nothing — treat it as absent.
124
+ return Object.keys(consent).length > 0 ? consent : undefined;
125
+ }
126
+ function isPresent(value) {
127
+ return value !== undefined && value.length > 0;
128
+ }
129
+ function isNonBlank(value) {
130
+ return value !== undefined && value.trim().length > 0;
131
+ }
132
+ //# sourceMappingURL=token_payload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token_payload.js","sourceRoot":"","sources":["../../../src/data/model/token_payload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { UserDetails } from "../../core/models/params";
2
+ import type { TokenPayload } from "./token_payload";
3
+ /**
4
+ * Wire carrier for the `user_details` multipart part.
5
+ *
6
+ * Unlike `UserDetails` — the partner-facing input model whose names are
7
+ * required — every field here is optional so the part can carry only the
8
+ * fields the token does **not** already bind. Token-bound fields are dropped
9
+ * at assembly (`userDetailsPayloadFrom`): the server injects the bound values
10
+ * and they take precedence over anything the client sends. When nothing
11
+ * remains, assembly omits the part entirely (`isUserDetailsPayloadEmpty`).
12
+ *
13
+ * Type and helper names are a deliberate cross-SDK shared contract and
14
+ * intentionally omit the `UseSmileID` prefix (like `TokenPayload`).
15
+ */
16
+ export type UserDetailsPayload = {
17
+ readonly givenNames?: string;
18
+ readonly lastName?: string;
19
+ readonly email?: string;
20
+ readonly phoneNumber?: string;
21
+ };
22
+ /**
23
+ * Build the payload from builder-supplied details, dropping every field the
24
+ * token binds. With no token binding this reproduces `UserDetails`' wire
25
+ * encoding unchanged.
26
+ */
27
+ export declare function userDetailsPayloadFrom(userDetails: UserDetails, droppingFieldsBoundBy: TokenPayload | undefined): UserDetailsPayload;
28
+ /**
29
+ * True when `userDetailsPayloadToWire` would produce an empty object — the
30
+ * caller omits the part instead of sending `{}`. Blank contacts count as
31
+ * empty, mirroring the wire encoding that trims and drops them.
32
+ */
33
+ export declare function isUserDetailsPayloadEmpty(payload: UserDetailsPayload): boolean;
34
+ /**
35
+ * Wire shape: snake_case keys. Names are emitted as supplied when non-blank;
36
+ * contact fields are trimmed and omitted when blank.
37
+ */
38
+ export declare function userDetailsPayloadToWire(payload: UserDetailsPayload): Record<string, string>;
39
+ //# sourceMappingURL=user_details_payload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user_details_payload.d.ts","sourceRoot":"","sources":["../../../src/data/model/user_details_payload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,WAAW,EACxB,qBAAqB,EAAE,YAAY,GAAG,SAAS,GAC9C,kBAAkB,CAgBpB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAET;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,kBAAkB,GAC1B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiBxB"}