@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
@@ -2,7 +2,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useEffect } from "react";
3
3
  import { UseSmileIDProcessingScreen, } from "../../screen/use_smile_id_processing_screen";
4
4
  import { UseSmileIDOrchestratedScreenHost } from "./use_smile_id_orchestrated_screen_host";
5
- import { ProcessingCancelledException } from "../../../core/exception";
5
+ import { NetworkResponseParseException, NetworkTimeoutException, NetworkTransportException, NetworkUnknownException, ProcessingCancelledException, } from "../../../core/exception";
6
+ import { useUseSmileIDLocalizations } from "../../../l10n/use_smile_id_localizations_provider";
6
7
  import { JobType, requiresDocument, requiresSelfie, } from "../../../core/models/job_type";
7
8
  /**
8
9
  * Orchestrated processing screen. Mounts the visual processing screen,
@@ -31,21 +32,28 @@ function ProcessingScreenBody(props) {
31
32
  ? navigationManager.captured.frontDocumentPath
32
33
  : undefined;
33
34
  const documentAspectRatio = navigationManager.documentFrameAspectRatio;
34
- return (_jsx(UseSmileIDProcessingScreen, { state: mapToProcessingState(navigationManager.jobSubmissionState), showFaceOval: requiresSelfie(jobType) || requiresDocument(jobType), showProgressPercentage: props.processingConfig.showProgressPercentage, showAttribution: props.processingConfig.showAttribution, ...(documentImageUri !== undefined ? { documentImageUri } : {}), ...(documentImageUri !== undefined && documentAspectRatio !== undefined
35
+ const loc = useUseSmileIDLocalizations();
36
+ return (_jsx(UseSmileIDProcessingScreen, { state: mapToProcessingState(navigationManager.jobSubmissionState, loc), showFaceOval: requiresSelfie(jobType) || requiresDocument(jobType), showProgressPercentage: props.processingConfig.showProgressPercentage, showAttribution: props.processingConfig.showAttribution, ...(documentImageUri !== undefined ? { documentImageUri } : {}), ...(documentImageUri !== undefined && documentAspectRatio !== undefined
35
37
  ? { documentAspectRatio }
36
38
  : {}), ...(navigationManager.captured.selfiePath !== undefined
37
39
  ? { capturedSelfiePath: navigationManager.captured.selfiePath }
38
40
  : {}), onContinue: props.onContinue, onRetry: () => navigationManager.retrySubmission(), onExit: () => navigationManager.exit({
39
41
  kind: "failed",
40
- error: new ProcessingCancelledException(),
42
+ error: exitError(navigationManager.jobSubmissionState),
41
43
  }) }));
42
44
  }
45
+ /** The error the flow exits with when the user leaves the processing screen; an already-failed submission is delivered as its own failure. */
46
+ function exitError(state) {
47
+ return state.kind === "failure"
48
+ ? state.error
49
+ : new ProcessingCancelledException();
50
+ }
43
51
  /**
44
52
  * Translate `JobSubmissionState` to the screen's `ProcessingState`.
45
53
  * `notAttempted` maps to `loading` so the brief pre-submission window
46
54
  * doesn't render an empty card.
47
55
  */
48
- function mapToProcessingState(state) {
56
+ function mapToProcessingState(state, loc) {
49
57
  switch (state.kind) {
50
58
  case "notAttempted":
51
59
  case "loading":
@@ -53,7 +61,19 @@ function mapToProcessingState(state) {
53
61
  case "success":
54
62
  return { kind: "success", message: state.response.message };
55
63
  case "failure":
56
- return { kind: "failed", errorMessage: state.error.message };
64
+ return { kind: "failed", errorMessage: userFacingMessage(state.error, loc) };
65
+ }
66
+ }
67
+ /** Transport/timeout and parse/unknown network failures carry technical text — every other failure keeps its message. */
68
+ function userFacingMessage(error, loc) {
69
+ if (error instanceof NetworkTransportException ||
70
+ error instanceof NetworkTimeoutException) {
71
+ return loc.siProcessingErrorNoConnection;
72
+ }
73
+ if (error instanceof NetworkResponseParseException ||
74
+ error instanceof NetworkUnknownException) {
75
+ return loc.siProcessingErrorGeneric;
57
76
  }
77
+ return error.message;
58
78
  }
59
79
  //# sourceMappingURL=orchestrated_processing_screen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrated_processing_screen.js","sourceRoot":"","sources":["../../../../src/presentation/flow/screen/orchestrated_processing_screen.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrated_processing_screen.js","sourceRoot":"","sources":["../../../../src/presentation/flow/screen/orchestrated_processing_screen.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"use_smile_id_flow.d.ts","sourceRoot":"","sources":["../../../src/presentation/flow/use_smile_id_flow.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAc/D,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AA2BtF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAC/D,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAC;IAC7E,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,QAAQ,EACR,eAAe,GAChB,EAAE,0BAA0B,sCAwB5B;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;CAC3C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,aAAa,GACd,EAAE,wBAAwB,+BAgN1B"}
1
+ {"version":3,"file":"use_smile_id_flow.d.ts","sourceRoot":"","sources":["../../../src/presentation/flow/use_smile_id_flow.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAc/D,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AA2BtF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAC/D,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAC;IAC7E,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,QAAQ,EACR,eAAe,GAChB,EAAE,0BAA0B,sCAwB5B;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;CAC3C,CAAC;AAKF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,aAAa,GACd,EAAE,wBAAwB,+BAgQ1B"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useMemo, useReducer, useRef } from "react";
3
- import { Text, useColorScheme, View } from "react-native";
2
+ import { useEffect, useMemo, useReducer, useRef, useState } from "react";
3
+ import { AppState, Text, useColorScheme, View } from "react-native";
4
4
  import { FlowNavigationManager, } from "./flow_navigation_manager";
5
5
  import { FlowNavigationProvider } from "./flow_navigation_context";
6
6
  import { ScreenRenderer } from "./graph/screen_renderer";
@@ -23,8 +23,8 @@ import { RetryStrategy, } from "../../core/models/network_config";
23
23
  * whether the partner constructs `network.retry` explicitly or not.
24
24
  */
25
25
  const DEFAULT_RETRY = Object.freeze({
26
- maxAttempts: 3,
27
- strategy: RetryStrategy.exponential,
26
+ maxAttempts: 1,
27
+ strategy: RetryStrategy.none,
28
28
  initialDelay: 1,
29
29
  multiplier: 2,
30
30
  maxDelay: 32,
@@ -69,6 +69,8 @@ export function FlowInvalidDispatcher({ result, onResult, enableDebugMode, }) {
69
69
  }
70
70
  return null;
71
71
  }
72
+ /** Ceiling on the first-frame font wait — past it the flow renders regardless. */
73
+ const FONT_REGISTRATION_TIMEOUT_MS = 1000;
72
74
  /**
73
75
  * Walks the partner through the configured screen list, dispatches
74
76
  * frames to the chosen analyzer, submits the resulting artifacts, and
@@ -105,11 +107,19 @@ export function FlowSuccessRenderer({ configuration, }) {
105
107
  : isDark
106
108
  ? defaultDarkTheme
107
109
  : defaultLightTheme;
108
- // Registers the bundled DM Sans faces (no-op after the first flow).
109
- // Rendering does not wait on this — text re-renders into DM Sans the
110
- // moment registration completes.
111
- useUseSmileIDFonts();
110
+ // The first frame waits on font registration: a label laid out in the system font and re-measured in DM Sans can settle clipped.
111
+ const fontsLoaded = useUseSmileIDFonts();
112
+ const [fontWaitElapsed, setFontWaitElapsed] = useState(false);
113
+ useEffect(() => {
114
+ if (fontsLoaded)
115
+ return;
116
+ const timer = setTimeout(() => setFontWaitElapsed(true), FONT_REGISTRATION_TIMEOUT_MS);
117
+ return () => clearTimeout(timer);
118
+ }, [fontsLoaded]);
112
119
  const enableCrashReporting = configuration.config?.enableCrashReporting !== false;
120
+ // Sandbox sessions are test traffic and must not pollute the production
121
+ // Sentry project; the reporter also drops debug bundles internally.
122
+ const useSandbox = configuration.network?.config?.partnerConfig?.useSandbox === true;
113
123
  // Per-flow session id used as the Sentry user-id so every event
114
124
  // captured during this verification flow correlates under one issue
115
125
  // thread. Generated once per mount; survives re-renders via `useRef`
@@ -121,7 +131,10 @@ export function FlowSuccessRenderer({ configuration, }) {
121
131
  }
122
132
  useEffect(() => {
123
133
  if (enableCrashReporting) {
124
- UseSmileIDCrashReporting.enable();
134
+ // Tear down any prior client first so a changed useSandbox flag takes
135
+ // effect — enable() short-circuits when already enabled.
136
+ UseSmileIDCrashReporting.disable();
137
+ UseSmileIDCrashReporting.enable({ useSandbox });
125
138
  UseSmileIDCrashReporting.setUserId(flowSessionIdRef.current);
126
139
  UseSmileIDCrashReporting.captureBreadcrumb({
127
140
  category: "flow.navigation",
@@ -131,12 +144,14 @@ export function FlowSuccessRenderer({ configuration, }) {
131
144
  return () => {
132
145
  UseSmileIDCrashReporting.disable();
133
146
  };
134
- }, [enableCrashReporting]);
147
+ }, [enableCrashReporting, useSandbox]);
135
148
  // `onResult` lives in a ref so the manager's `onExit` closure
136
149
  // captures the latest partner callback without recreating the
137
150
  // manager on every parent render.
138
151
  const onResultRef = useRef(configuration.onResult);
139
152
  onResultRef.current = configuration.onResult;
153
+ // Latched by `handleExit` so an unmounted-before-finishing flow can deliver exactly once.
154
+ const finishedRef = useRef(false);
140
155
  // Force-update reducer drives re-renders when the manager's cursor
141
156
  // or captured artifacts change. Cheaper than mirroring state into
142
157
  // React state — the manager is the single source of truth.
@@ -168,6 +183,7 @@ export function FlowSuccessRenderer({ configuration, }) {
168
183
  }, [configuration.network]);
169
184
  const manager = useMemo(() => {
170
185
  const handleExit = (reason) => {
186
+ finishedRef.current = true;
171
187
  const onResult = onResultRef.current;
172
188
  try {
173
189
  if (reason.kind === "completed") {
@@ -220,6 +236,13 @@ export function FlowSuccessRenderer({ configuration, }) {
220
236
  manager.dispose();
221
237
  };
222
238
  }, [manager]);
239
+ // A flow unmounted before finishing delivers a cancelled result exactly once.
240
+ useEffect(() => () => {
241
+ if (!finishedRef.current) {
242
+ finishedRef.current = true;
243
+ onResultRef.current(cancelled());
244
+ }
245
+ }, []);
223
246
  // Resolve localizations:
224
247
  // 1. Explicit `configuration.localizations` (partner-set on the
225
248
  // builder) — wins over everything.
@@ -228,6 +251,16 @@ export function FlowSuccessRenderer({ configuration, }) {
228
251
  // registered locales with `UseSmileIDLocalizations.register(...)`.
229
252
  // 3. English defaults — no provider mounted, screens read from
230
253
  // the context's default English-only instance.
254
+ // A device locale change requires leaving the app, so re-reading on foreground is what makes a mid-flow switch observable.
255
+ const [localeEpoch, bumpLocaleEpoch] = useReducer((x) => x + 1, 0);
256
+ useEffect(() => {
257
+ const subscription = AppState.addEventListener("change", (nextState) => {
258
+ if (nextState === "active")
259
+ bumpLocaleEpoch();
260
+ });
261
+ return () => subscription.remove();
262
+ }, []);
263
+ const activeLocaleKey = UseSmileIDLocalizations.activeLocaleKey;
231
264
  const resolved = useMemo(() => {
232
265
  if (configuration.localizations)
233
266
  return configuration.localizations;
@@ -235,7 +268,7 @@ export function FlowSuccessRenderer({ configuration, }) {
235
268
  return UseSmileIDLocalizations.forActiveLocale();
236
269
  }
237
270
  return null;
238
- }, [configuration.localizations]);
271
+ }, [configuration.localizations, activeLocaleKey, localeEpoch]);
239
272
  const step = manager.currentScreen;
240
273
  // Empty-screens sentinel: a partner who forgot to call
241
274
  // `b.screens(...)` would otherwise see a blank screen with no clue
@@ -255,7 +288,7 @@ export function FlowSuccessRenderer({ configuration, }) {
255
288
  // Localizations provider only mounts when registered locales
256
289
  // resolve — the context default (English) covers the no-provider
257
290
  // path without an extra wrapper.
258
- const themed = (_jsx(UseSmileIDThemeProvider, { value: theme, children: inner }));
291
+ const themed = (_jsx(UseSmileIDThemeProvider, { value: theme, children: fontsLoaded || fontWaitElapsed ? (inner) : (_jsx(View, { style: { flex: 1, backgroundColor: theme.colors.background }, testID: "si_flow_font_gate" })) }));
259
292
  if (resolved) {
260
293
  return (_jsx(UseSmileIDLocalizationsProvider, { value: resolved, children: themed }));
261
294
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use_smile_id_flow.js","sourceRoot":"","sources":["../../../src/presentation/flow/use_smile_id_flow.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use_smile_id_flow.js","sourceRoot":"","sources":["../../../src/presentation/flow/use_smile_id_flow.tsx"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { MLConfig } from "../../../core/models/ml_config";
2
2
  import type { NetworkConfig } from "../../../core/models/network_config";
3
3
  import type { BiometricKYCParams, ConsentInformation, DocumentVerificationParams, EnhancedDocumentVerificationParams, EnhancedKYCParams, UserDetails } from "../../../core/models/params";
4
4
  import type { ScreenSpec } from "../dsl/builder/screens_builder";
5
+ import type { TokenPayload } from "../../../data/model/token_payload";
5
6
  import { ValidationState, type ValidationIssue } from "./validation_state";
6
7
  /**
7
8
  * Pure flow validator — returns typed `UseSmileIDValidationException`
@@ -35,6 +36,12 @@ type FlowValidatorInput = {
35
36
  readonly documentVerificationParams?: DocumentVerificationParams | undefined;
36
37
  readonly enhancedDocumentVerificationParams?: EnhancedDocumentVerificationParams | undefined;
37
38
  readonly userDetails?: UserDetails | undefined;
39
+ /**
40
+ * User-detail/consent bindings decoded from the JWT `payload` claim.
41
+ * `undefined` (no token, offline mode, legacy token) keeps every rule
42
+ * exactly as strict as before token support existed.
43
+ */
44
+ readonly tokenPayload?: TokenPayload | undefined;
38
45
  };
39
46
  /**
40
47
  * Quick triage of the in-progress builder state. Today the only rule
@@ -86,12 +93,19 @@ export declare function runConsentValidation(consent: ConsentInformation): Valid
86
93
  * keep working unchanged after the consolidation away from nesting
87
94
  * `userDetails` inside the KYC param shapes.
88
95
  *
96
+ * Each field requirement is evaluated against the union of builder
97
+ * input and token bindings: a field the token binds (see
98
+ * `TokenPayload`) never has to be supplied locally — the server
99
+ * injects it, and the SDK drops the local value from the wire. With
100
+ * no `tokenPayload` the behavior is exactly the pre-token rule set.
101
+ *
89
102
  * Exposed via `b.validateUserDetails(payload)` so partners can
90
103
  * pre-flight a payload before assigning to `b.userDetails`, mirroring
91
104
  * the existing `b.validateConsent` / `b.validateEnhancedKYCParams`
92
- * pattern.
105
+ * pattern (the pre-flight helper always validates strictly, without
106
+ * token context).
93
107
  */
94
- export declare function runUserDetailsValidation(userDetails: UserDetails): ValidationIssue[];
108
+ export declare function runUserDetailsValidation(userDetails: UserDetails, tokenPayload?: TokenPayload): ValidationIssue[];
95
109
  /**
96
110
  * Find the first `error`-severity issue in a state. Returns
97
111
  * `undefined` for a valid state, or for a state whose only issues
@@ -1 +1 @@
1
- {"version":3,"file":"flow_validator.d.ts","sourceRoot":"","sources":["../../../../src/presentation/flow/validation/flow_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,kCAAkC,EAClC,iBAAiB,EACjB,WAAW,EACZ,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAmBjE,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG3E;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,0BAA0B,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAC7E,QAAQ,CAAC,kCAAkC,CAAC,EACxC,kCAAkC,GAClC,SAAS,CAAC;IACd,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAChD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,UAAU,EAAE,GAC3B,eAAe,EAAE,CAMnB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,kBAAkB,GACxB,eAAe,EAAE,CAwJnB;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,iBAAiB,GACxB,eAAe,EAAE,CAEnB;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,kBAAkB,GACzB,eAAe,EAAE,CAEnB;AAED;;;;GAIG;AACH,wBAAgB,uCAAuC,CACrD,MAAM,EAAE,0BAA0B,GACjC,eAAe,EAAE,CAmBnB;AAED;;;GAGG;AACH,wBAAgB,+CAA+C,CAC7D,MAAM,EAAE,kCAAkC,GACzC,eAAe,EAAE,CAcnB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,kBAAkB,GAC1B,eAAe,EAAE,CAuBnB;AAuBD;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,WAAW,GACvB,eAAe,EAAE,CA2BnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,eAAe,GACrB,eAAe,GAAG,SAAS,CAG7B"}
1
+ {"version":3,"file":"flow_validator.d.ts","sourceRoot":"","sources":["../../../../src/presentation/flow/validation/flow_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,kCAAkC,EAClC,iBAAiB,EACjB,WAAW,EACZ,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAEV,UAAU,EAEX,MAAM,gCAAgC,CAAC;AAoBxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI3E;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,0BAA0B,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAC7E,QAAQ,CAAC,kCAAkC,CAAC,EACxC,kCAAkC,GAClC,SAAS,CAAC;IACd,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CAClD,CAAC;AA+CF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,UAAU,EAAE,GAC3B,eAAe,EAAE,CAMnB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,kBAAkB,GACxB,eAAe,EAAE,CA2InB;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,iBAAiB,GACxB,eAAe,EAAE,CAEnB;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,kBAAkB,GACzB,eAAe,EAAE,CAEnB;AAED;;;;GAIG;AACH,wBAAgB,uCAAuC,CACrD,MAAM,EAAE,0BAA0B,GACjC,eAAe,EAAE,CAmBnB;AAED;;;GAGG;AACH,wBAAgB,+CAA+C,CAC7D,MAAM,EAAE,kCAAkC,GACzC,eAAe,EAAE,CAcnB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,kBAAkB,GAC1B,eAAe,EAAE,CAuBnB;AAuBD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,WAAW,EACxB,YAAY,CAAC,EAAE,YAAY,GAC1B,eAAe,EAAE,CAEnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,eAAe,GACrB,eAAe,GAAG,SAAS,CAG7B"}
@@ -1,11 +1,49 @@
1
1
  import { CaptureType } from "../../../core/models/ml_config";
2
- import { JobType } from "../../../core/models/job_type";
2
+ import { JobType, jobTypeFromValue } from "../../../core/models/job_type";
3
3
  import { IssueSeverity } from "../../../core/exception/issue_severity";
4
4
  import { InvalidConsentConfigException, InvalidConsentInformationException, } from "../../../core/exception/consent_validation_exceptions";
5
5
  import { InvalidFieldValueException, MissingJobTypeException, MissingMLConfigurationBlockException, MissingNetworkConfigurationBlockException, } from "../../../core/exception/job_validation_exceptions";
6
- import { InvalidDocumentCaptureConfigException, InvalidMissingCaptureTypeException, } from "../../../core/exception/capture_validation_exceptions";
6
+ import { AgentModeWithEnhancedLivenessException, InvalidDocumentCaptureConfigException, InvalidMissingCaptureTypeException, } from "../../../core/exception/capture_validation_exceptions";
7
7
  import { EmptyScreensBlockException } from "../../../core/exception/screen_config_validation_exceptions";
8
8
  import { collectJobTypeIssues } from "./job_type_validator";
9
+ import { missingUserDetailsFieldIssues } from "./user_details_validator";
10
+ /**
11
+ * Agent mode captures on the rear lens while the head-turn challenge is only
12
+ * validated for front-camera framing, so the pair is refused rather than
13
+ * silently dropping one of them.
14
+ */
15
+ function selfieConfigIssues(config) {
16
+ if (config?.allowAgentMode && config.enableEnhancedLiveness) {
17
+ return [new AgentModeWithEnhancedLivenessException()];
18
+ }
19
+ return [];
20
+ }
21
+ /** Surfaces at most one issue: missing block > missing type > bad aspect ratio. */
22
+ function documentConfigIssues(config) {
23
+ if (config === undefined) {
24
+ return [
25
+ new InvalidDocumentCaptureConfigException({
26
+ reason: "document is required when mode is Document",
27
+ }),
28
+ ];
29
+ }
30
+ if (config.documentType === undefined) {
31
+ return [
32
+ new InvalidDocumentCaptureConfigException({
33
+ reason: "documentType is required for document capture",
34
+ }),
35
+ ];
36
+ }
37
+ if (config.knownIdAspectRatio !== undefined &&
38
+ config.knownIdAspectRatio <= 0) {
39
+ return [
40
+ new InvalidDocumentCaptureConfigException({
41
+ reason: "knownIdAspectRatio must be > 0 if provided",
42
+ }),
43
+ ];
44
+ }
45
+ return [];
46
+ }
9
47
  /**
10
48
  * Quick triage of the in-progress builder state. Today the only rule
11
49
  * surfaced is the empty-screens-block error — `b.screens(...)` must
@@ -43,26 +81,11 @@ export function runFlowValidation(input) {
43
81
  if (step.config.captureType === undefined) {
44
82
  issues.push(new InvalidMissingCaptureTypeException());
45
83
  }
46
- // Document captures carry required config: surface at most one issue per
47
- // step (missing block > missing type > bad aspect ratio).
84
+ if (step.config.captureType === CaptureType.selfie) {
85
+ issues.push(...selfieConfigIssues(step.config.selfieConfig));
86
+ }
48
87
  if (step.config.captureType === CaptureType.document) {
49
- const documentConfig = step.config.documentConfig;
50
- if (documentConfig === undefined) {
51
- issues.push(new InvalidDocumentCaptureConfigException({
52
- reason: "document is required when mode is Document",
53
- }));
54
- }
55
- else if (documentConfig.documentType === undefined) {
56
- issues.push(new InvalidDocumentCaptureConfigException({
57
- reason: "documentType is required for document capture",
58
- }));
59
- }
60
- else if (documentConfig.knownIdAspectRatio !== undefined &&
61
- documentConfig.knownIdAspectRatio <= 0) {
62
- issues.push(new InvalidDocumentCaptureConfigException({
63
- reason: "knownIdAspectRatio must be > 0 if provided",
64
- }));
65
- }
88
+ issues.push(...documentConfigIssues(step.config.documentConfig));
66
89
  }
67
90
  }
68
91
  }
@@ -78,9 +101,11 @@ export function runFlowValidation(input) {
78
101
  // build (ERROR) whenever it's missing — whether or not a network
79
102
  // block was provided. The missing-network WARNING above still fires
80
103
  // alongside this when the block is absent.
104
+ // `jobTypeFromValue` collapses the unknown sentinel and any out-of-enum value, so an unrecognised job_type_id fails the build too.
81
105
  if (hasProcessingScreen) {
82
106
  const jobType = input.network?.config?.jobType;
83
- if (jobType === undefined || jobType === JobType.unknown) {
107
+ if (jobType === undefined ||
108
+ jobTypeFromValue(jobType) === JobType.unknown) {
84
109
  issues.push(new MissingJobTypeException());
85
110
  }
86
111
  }
@@ -113,7 +138,9 @@ export function runFlowValidation(input) {
113
138
  reason: "Exactly one form of consent is required — remove the consent { } screen if using consentInformation, or clear consentInformation if using the consent screen",
114
139
  }));
115
140
  }
116
- if (input.consentInformation) {
141
+ // A token consent binding supersedes the preset entirely (token data
142
+ // always wins), so the ignored preset's contents are not validated.
143
+ if (input.consentInformation && input.tokenPayload?.consent === undefined) {
117
144
  issues.push(...runConsentValidation(input.consentInformation));
118
145
  }
119
146
  if (input.enhancedKYCParams) {
@@ -129,7 +156,7 @@ export function runFlowValidation(input) {
129
156
  issues.push(...runEnhancedDocumentVerificationParamsValidation(input.enhancedDocumentVerificationParams));
130
157
  }
131
158
  if (input.userDetails) {
132
- issues.push(...runUserDetailsValidation(input.userDetails));
159
+ issues.push(...runUserDetailsValidation(input.userDetails, input.tokenPayload));
133
160
  }
134
161
  // Every flow-composition rule (screen ordering, duplicate screens,
135
162
  // preview placement, analyzer dependencies, per-job field
@@ -240,33 +267,20 @@ function runKYCParamsValidation(params) {
240
267
  * keep working unchanged after the consolidation away from nesting
241
268
  * `userDetails` inside the KYC param shapes.
242
269
  *
270
+ * Each field requirement is evaluated against the union of builder
271
+ * input and token bindings: a field the token binds (see
272
+ * `TokenPayload`) never has to be supplied locally — the server
273
+ * injects it, and the SDK drops the local value from the wire. With
274
+ * no `tokenPayload` the behavior is exactly the pre-token rule set.
275
+ *
243
276
  * Exposed via `b.validateUserDetails(payload)` so partners can
244
277
  * pre-flight a payload before assigning to `b.userDetails`, mirroring
245
278
  * the existing `b.validateConsent` / `b.validateEnhancedKYCParams`
246
- * pattern.
279
+ * pattern (the pre-flight helper always validates strictly, without
280
+ * token context).
247
281
  */
248
- export function runUserDetailsValidation(userDetails) {
249
- const issues = [];
250
- for (const field of ["givenNames", "lastName"]) {
251
- const value = userDetails[field];
252
- if (!value || !value.trim()) {
253
- issues.push(new InvalidFieldValueException({
254
- fieldName: `userDetails.${field}`,
255
- reason: "must not be blank",
256
- }));
257
- }
258
- }
259
- // At-least-one-of contact rule: email and phoneNumber are each
260
- // optional, but the partner must supply one of them.
261
- const hasEmail = !!userDetails.email && userDetails.email.trim().length > 0;
262
- const hasPhone = !!userDetails.phoneNumber && userDetails.phoneNumber.trim().length > 0;
263
- if (!hasEmail && !hasPhone) {
264
- issues.push(new InvalidFieldValueException({
265
- fieldName: "userDetails",
266
- reason: "at least one of email or phoneNumber must be non blank",
267
- }));
268
- }
269
- return issues;
282
+ export function runUserDetailsValidation(userDetails, tokenPayload) {
283
+ return missingUserDetailsFieldIssues(userDetails, tokenPayload);
270
284
  }
271
285
  /**
272
286
  * Find the first `error`-severity issue in a state. Returns
@@ -1 +1 @@
1
- {"version":3,"file":"flow_validator.js","sourceRoot":"","sources":["../../../../src/presentation/flow/validation/flow_validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flow_validator.js","sourceRoot":"","sources":["../../../../src/presentation/flow/validation/flow_validator.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { NetworkConfig } from "../../../core/models/network_config";
3
3
  import type { BiometricKYCParams, ConsentInformation, DocumentVerificationParams, EnhancedDocumentVerificationParams, EnhancedKYCParams, UserDetails } from "../../../core/models/params";
4
4
  import { JobType } from "../../../core/models/job_type";
5
5
  import type { ScreenSpec } from "../dsl/builder/screens_builder";
6
+ import { type TokenPayload } from "../../../data/model/token_payload";
6
7
  import type { ValidationIssue } from "./validation_state";
7
8
  /**
8
9
  * Job-type-specific flow validation rules.
@@ -46,6 +47,12 @@ export type JobTypeValidatorInput = {
46
47
  readonly documentVerificationParams?: DocumentVerificationParams | undefined;
47
48
  readonly enhancedDocumentVerificationParams?: EnhancedDocumentVerificationParams | undefined;
48
49
  readonly userDetails?: UserDetails | undefined;
50
+ /**
51
+ * User-detail/consent bindings decoded from the JWT `payload` claim.
52
+ * `undefined` (no token, offline mode, legacy token) keeps every rule
53
+ * exactly as strict as before token support existed.
54
+ */
55
+ readonly tokenPayload?: TokenPayload | undefined;
49
56
  };
50
57
  /**
51
58
  * Validates selfie-only flows: BiometricKyc, SmartSelfieAuthentication,
@@ -1 +1 @@
1
- {"version":3,"file":"job_type_validator.d.ts","sourceRoot":"","sources":["../../../../src/presentation/flow/validation/job_type_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,kCAAkC,EAClC,iBAAiB,EACjB,WAAW,EACZ,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AASjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;CACzE;AAED;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,0BAA0B,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAC7E,QAAQ,CAAC,kCAAkC,CAAC,EACxC,kCAAkC,GAClC,SAAS,CAAC;IACd,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAChD,CAAC;AA2PF;;;;;GAKG;AACH,qBAAa,sBAAuB,YAAW,gBAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO;IAE7C,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI;CAkExE;AAED;;;;;;;;;GASG;AACH,qBAAa,wBAAyB,YAAW,gBAAgB;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO;IAE7C,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI;IAkFvE;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAiCzB;AAED;;;;;;;GAOG;AACH,qBAAa,0BAA2B,YAAW,gBAAgB;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO;IAE7C,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI;CAqDxE;AAED;;;;;;GAMG;AACH,qBAAa,0BAA2B,YAAW,gBAAgB;IACjE,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI;CAKxE;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,OAAO,EAAE,gBAAgB,CAqBjE,CAAC;AAIL;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,GAAG,SAAS,GAC3B,gBAAgB,CAKlB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,eAAe,EAAE,GACxB,IAAI,CAGN"}
1
+ {"version":3,"file":"job_type_validator.d.ts","sourceRoot":"","sources":["../../../../src/presentation/flow/validation/job_type_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,kCAAkC,EAClC,iBAAiB,EACjB,WAAW,EACZ,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AASjE,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;CACzE;AAED;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,0BAA0B,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAC7E,QAAQ,CAAC,kCAAkC,CAAC,EACxC,kCAAkC,GAClC,SAAS,CAAC;IACd,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CAClD,CAAC;AA6SF;;;;;GAKG;AACH,qBAAa,sBAAuB,YAAW,gBAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO;IAE7C,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI;CAyDxE;AAED;;;;;;;;;GASG;AACH,qBAAa,wBAAyB,YAAW,gBAAgB;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO;IAE7C,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI;IAyEvE;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAiCzB;AAED;;;;;;;GAOG;AACH,qBAAa,0BAA2B,YAAW,gBAAgB;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO;IAE7C,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI;CA2CxE;AAED;;;;;;GAMG;AACH,qBAAa,0BAA2B,YAAW,gBAAgB;IACjE,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI;CAKxE;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,OAAO,EAAE,gBAAgB,CAqBjE,CAAC;AAIL;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,GAAG,SAAS,GAC3B,gBAAgB,CAKlB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,eAAe,EAAE,GACxB,IAAI,CAGN"}