@smileid/usesmileid 12.0.0-beta01 → 12.0.0

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 (403) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +701 -89
  3. package/dist/camera/camera_defaults.d.ts +14 -9
  4. package/dist/camera/camera_defaults.d.ts.map +1 -1
  5. package/dist/camera/camera_defaults.js +11 -9
  6. package/dist/camera/camera_defaults.js.map +1 -1
  7. package/dist/camera/orientation_degrees.d.ts +5 -6
  8. package/dist/camera/orientation_degrees.d.ts.map +1 -1
  9. package/dist/camera/orientation_degrees.js +5 -6
  10. package/dist/camera/orientation_degrees.js.map +1 -1
  11. package/dist/core/models/document_capture_mode.d.ts +8 -0
  12. package/dist/core/models/document_capture_mode.d.ts.map +1 -1
  13. package/dist/core/models/document_capture_mode.js +24 -0
  14. package/dist/core/models/document_capture_mode.js.map +1 -1
  15. package/dist/core/models/document_type.d.ts +2 -2
  16. package/dist/core/models/document_type.d.ts.map +1 -1
  17. package/dist/core/models/document_type.js +6 -4
  18. package/dist/core/models/document_type.js.map +1 -1
  19. package/dist/core/models/result.d.ts +9 -8
  20. package/dist/core/models/result.d.ts.map +1 -1
  21. package/dist/core/models/result.js +5 -6
  22. package/dist/core/models/result.js.map +1 -1
  23. package/dist/data/api/interceptors/smile_auth_interceptor.js +1 -1
  24. package/dist/data/api/interceptors/smile_auth_interceptor.js.map +1 -1
  25. package/dist/data/api/interceptors/smile_integrity_interceptor.d.ts +11 -0
  26. package/dist/data/api/interceptors/smile_integrity_interceptor.d.ts.map +1 -1
  27. package/dist/data/api/interceptors/smile_integrity_interceptor.js +13 -0
  28. package/dist/data/api/interceptors/smile_integrity_interceptor.js.map +1 -1
  29. package/dist/data/api/interceptors/smile_request_mac_interceptor.d.ts +8 -0
  30. package/dist/data/api/interceptors/smile_request_mac_interceptor.d.ts.map +1 -1
  31. package/dist/data/api/interceptors/smile_request_mac_interceptor.js +11 -0
  32. package/dist/data/api/interceptors/smile_request_mac_interceptor.js.map +1 -1
  33. package/dist/data/compression/compressible_asset.d.ts +41 -0
  34. package/dist/data/compression/compressible_asset.d.ts.map +1 -0
  35. package/dist/data/compression/compressible_asset.js +34 -0
  36. package/dist/data/compression/compressible_asset.js.map +1 -0
  37. package/dist/data/compression/payload_compression_config.d.ts +36 -0
  38. package/dist/data/compression/payload_compression_config.d.ts.map +1 -0
  39. package/dist/data/compression/payload_compression_config.js +52 -0
  40. package/dist/data/compression/payload_compression_config.js.map +1 -0
  41. package/dist/data/compression/payload_compression_runner.d.ts +29 -0
  42. package/dist/data/compression/payload_compression_runner.d.ts.map +1 -0
  43. package/dist/data/compression/payload_compression_runner.js +55 -0
  44. package/dist/data/compression/payload_compression_runner.js.map +1 -0
  45. package/dist/data/compression/payload_compressor.d.ts +40 -0
  46. package/dist/data/compression/payload_compressor.d.ts.map +1 -0
  47. package/dist/data/compression/payload_compressor.js +126 -0
  48. package/dist/data/compression/payload_compressor.js.map +1 -0
  49. package/dist/data/compression/uri_compressible_asset.d.ts +23 -0
  50. package/dist/data/compression/uri_compressible_asset.d.ts.map +1 -0
  51. package/dist/data/compression/uri_compressible_asset.js +77 -0
  52. package/dist/data/compression/uri_compressible_asset.js.map +1 -0
  53. package/dist/data/dsl/builder/cache_config_builder.d.ts +2 -1
  54. package/dist/data/dsl/builder/cache_config_builder.d.ts.map +1 -1
  55. package/dist/data/dsl/builder/cache_config_builder.js +2 -1
  56. package/dist/data/dsl/builder/cache_config_builder.js.map +1 -1
  57. package/dist/data/dsl/builder/config_builder.d.ts +40 -14
  58. package/dist/data/dsl/builder/config_builder.d.ts.map +1 -1
  59. package/dist/data/dsl/builder/config_builder.js +40 -14
  60. package/dist/data/dsl/builder/config_builder.js.map +1 -1
  61. package/dist/data/dsl/builder/interceptor_config_builder.d.ts +9 -7
  62. package/dist/data/dsl/builder/interceptor_config_builder.d.ts.map +1 -1
  63. package/dist/data/dsl/builder/interceptor_config_builder.js +9 -7
  64. package/dist/data/dsl/builder/interceptor_config_builder.js.map +1 -1
  65. package/dist/data/dsl/builder/retry_config_builder.d.ts +16 -1
  66. package/dist/data/dsl/builder/retry_config_builder.d.ts.map +1 -1
  67. package/dist/data/dsl/builder/retry_config_builder.js +16 -1
  68. package/dist/data/dsl/builder/retry_config_builder.js.map +1 -1
  69. package/dist/data/dsl/builder/timeout_config_builder.d.ts +4 -0
  70. package/dist/data/dsl/builder/timeout_config_builder.d.ts.map +1 -1
  71. package/dist/data/dsl/builder/timeout_config_builder.js +4 -0
  72. package/dist/data/dsl/builder/timeout_config_builder.js.map +1 -1
  73. package/dist/data/dsl/use_smile_id_network_builder.d.ts +17 -0
  74. package/dist/data/dsl/use_smile_id_network_builder.d.ts.map +1 -1
  75. package/dist/data/dsl/use_smile_id_network_builder.js +17 -0
  76. package/dist/data/dsl/use_smile_id_network_builder.js.map +1 -1
  77. package/dist/data/factory/networking_factory.d.ts.map +1 -1
  78. package/dist/data/factory/networking_factory.js +11 -1
  79. package/dist/data/factory/networking_factory.js.map +1 -1
  80. package/dist/data/repository/use_smile_id_repository_impl.d.ts +6 -0
  81. package/dist/data/repository/use_smile_id_repository_impl.d.ts.map +1 -1
  82. package/dist/data/repository/use_smile_id_repository_impl.js +82 -8
  83. package/dist/data/repository/use_smile_id_repository_impl.js.map +1 -1
  84. package/dist/data/security/request_canonicalizer.d.ts.map +1 -1
  85. package/dist/data/security/request_canonicalizer.js +14 -2
  86. package/dist/data/security/request_canonicalizer.js.map +1 -1
  87. package/dist/data/security/security_policy.d.ts +43 -0
  88. package/dist/data/security/security_policy.d.ts.map +1 -0
  89. package/dist/data/security/security_policy.js +61 -0
  90. package/dist/data/security/security_policy.js.map +1 -0
  91. package/dist/data/util/retry_util.d.ts +1 -1
  92. package/dist/data/util/retry_util.d.ts.map +1 -1
  93. package/dist/data/util/retry_util.js +2 -1
  94. package/dist/data/util/retry_util.js.map +1 -1
  95. package/dist/data/util/use_smile_id_token_decoder.d.ts +22 -0
  96. package/dist/data/util/use_smile_id_token_decoder.d.ts.map +1 -1
  97. package/dist/data/util/use_smile_id_token_decoder.js +58 -24
  98. package/dist/data/util/use_smile_id_token_decoder.js.map +1 -1
  99. package/dist/l10n/strings_en.d.ts +2 -1
  100. package/dist/l10n/strings_en.d.ts.map +1 -1
  101. package/dist/l10n/strings_en.js +2 -1
  102. package/dist/l10n/strings_en.js.map +1 -1
  103. package/dist/l10n/use_smile_id_localizations.d.ts +1 -0
  104. package/dist/l10n/use_smile_id_localizations.d.ts.map +1 -1
  105. package/dist/l10n/use_smile_id_localizations.js +3 -0
  106. package/dist/l10n/use_smile_id_localizations.js.map +1 -1
  107. package/dist/metadata/builder_configuration.d.ts +39 -0
  108. package/dist/metadata/builder_configuration.d.ts.map +1 -0
  109. package/dist/metadata/builder_configuration.js +34 -0
  110. package/dist/metadata/builder_configuration.js.map +1 -0
  111. package/dist/metadata/captured_image_properties.d.ts +11 -0
  112. package/dist/metadata/captured_image_properties.d.ts.map +1 -0
  113. package/dist/metadata/captured_image_properties.js +11 -0
  114. package/dist/metadata/captured_image_properties.js.map +1 -0
  115. package/dist/metadata/device_orientation_collector.d.ts +17 -0
  116. package/dist/metadata/device_orientation_collector.d.ts.map +1 -0
  117. package/dist/metadata/device_orientation_collector.js +66 -0
  118. package/dist/metadata/device_orientation_collector.js.map +1 -0
  119. package/dist/metadata/geolocation.d.ts +20 -0
  120. package/dist/metadata/geolocation.d.ts.map +1 -0
  121. package/dist/metadata/geolocation.js +40 -0
  122. package/dist/metadata/geolocation.js.map +1 -0
  123. package/dist/metadata/metadata_configuration_mappers.d.ts +48 -0
  124. package/dist/metadata/metadata_configuration_mappers.d.ts.map +1 -0
  125. package/dist/metadata/metadata_configuration_mappers.js +171 -0
  126. package/dist/metadata/metadata_configuration_mappers.js.map +1 -0
  127. package/dist/metadata/model_configuration.d.ts +41 -0
  128. package/dist/metadata/model_configuration.d.ts.map +1 -0
  129. package/dist/metadata/model_configuration.js +44 -0
  130. package/dist/metadata/model_configuration.js.map +1 -0
  131. package/dist/metadata/optional_native_modules.d.ts +79 -3
  132. package/dist/metadata/optional_native_modules.d.ts.map +1 -1
  133. package/dist/metadata/optional_native_modules.js +108 -3
  134. package/dist/metadata/optional_native_modules.js.map +1 -1
  135. package/dist/metadata/use_smile_id_metadata.d.ts +45 -7
  136. package/dist/metadata/use_smile_id_metadata.d.ts.map +1 -1
  137. package/dist/metadata/use_smile_id_metadata.js +85 -13
  138. package/dist/metadata/use_smile_id_metadata.js.map +1 -1
  139. package/dist/metadata/use_smile_id_metadata_factory.d.ts +37 -0
  140. package/dist/metadata/use_smile_id_metadata_factory.d.ts.map +1 -1
  141. package/dist/metadata/use_smile_id_metadata_factory.js +184 -12
  142. package/dist/metadata/use_smile_id_metadata_factory.js.map +1 -1
  143. package/dist/presentation/assets/svg/document_shimmer_strings.d.ts +14 -0
  144. package/dist/presentation/assets/svg/document_shimmer_strings.d.ts.map +1 -0
  145. package/dist/presentation/assets/svg/document_shimmer_strings.js +14 -0
  146. package/dist/presentation/assets/svg/document_shimmer_strings.js.map +1 -0
  147. package/dist/presentation/assets/svg/instruction_svg_strings.d.ts +12 -4
  148. package/dist/presentation/assets/svg/instruction_svg_strings.d.ts.map +1 -1
  149. package/dist/presentation/assets/svg/instruction_svg_strings.js +19 -8
  150. package/dist/presentation/assets/svg/instruction_svg_strings.js.map +1 -1
  151. package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.d.ts +0 -5
  152. package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.d.ts.map +1 -1
  153. package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.js +0 -5
  154. package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.js.map +1 -1
  155. package/dist/presentation/components/icons/index.d.ts +24 -8
  156. package/dist/presentation/components/icons/index.d.ts.map +1 -1
  157. package/dist/presentation/components/icons/index.js +31 -11
  158. package/dist/presentation/components/icons/index.js.map +1 -1
  159. package/dist/presentation/components/use_smile_id_attribution.d.ts +1 -1
  160. package/dist/presentation/components/use_smile_id_button.d.ts +2 -2
  161. package/dist/presentation/components/use_smile_id_button.js +4 -4
  162. package/dist/presentation/components/use_smile_id_button.js.map +1 -1
  163. package/dist/presentation/components/use_smile_id_capture_content.d.ts +13 -0
  164. package/dist/presentation/components/use_smile_id_capture_content.d.ts.map +1 -1
  165. package/dist/presentation/components/use_smile_id_capture_content.js +15 -9
  166. package/dist/presentation/components/use_smile_id_capture_content.js.map +1 -1
  167. package/dist/presentation/components/use_smile_id_captured_document_image.d.ts +2 -3
  168. package/dist/presentation/components/use_smile_id_captured_document_image.d.ts.map +1 -1
  169. package/dist/presentation/components/use_smile_id_captured_document_image.js +1 -3
  170. package/dist/presentation/components/use_smile_id_captured_document_image.js.map +1 -1
  171. package/dist/presentation/components/use_smile_id_document_capture_controls.d.ts +12 -6
  172. package/dist/presentation/components/use_smile_id_document_capture_controls.d.ts.map +1 -1
  173. package/dist/presentation/components/use_smile_id_document_capture_controls.js +59 -16
  174. package/dist/presentation/components/use_smile_id_document_capture_controls.js.map +1 -1
  175. package/dist/presentation/components/use_smile_id_document_overlay.d.ts +22 -5
  176. package/dist/presentation/components/use_smile_id_document_overlay.d.ts.map +1 -1
  177. package/dist/presentation/components/use_smile_id_document_overlay.js +80 -40
  178. package/dist/presentation/components/use_smile_id_document_overlay.js.map +1 -1
  179. package/dist/presentation/components/use_smile_id_document_shimmer.d.ts +15 -0
  180. package/dist/presentation/components/use_smile_id_document_shimmer.d.ts.map +1 -0
  181. package/dist/presentation/components/use_smile_id_document_shimmer.js +23 -0
  182. package/dist/presentation/components/use_smile_id_document_shimmer.js.map +1 -0
  183. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.d.ts.map +1 -1
  184. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.js +1 -3
  185. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.js.map +1 -1
  186. package/dist/presentation/components/use_smile_id_guideline_thumbnail.d.ts.map +1 -1
  187. package/dist/presentation/components/use_smile_id_guideline_thumbnail.js +84 -1
  188. package/dist/presentation/components/use_smile_id_guideline_thumbnail.js.map +1 -1
  189. package/dist/presentation/components/use_smile_id_instructions_hero.d.ts +3 -1
  190. package/dist/presentation/components/use_smile_id_instructions_hero.d.ts.map +1 -1
  191. package/dist/presentation/components/use_smile_id_instructions_hero.js +18 -3
  192. package/dist/presentation/components/use_smile_id_instructions_hero.js.map +1 -1
  193. package/dist/presentation/components/use_smile_id_oval_border_palette.d.ts.map +1 -1
  194. package/dist/presentation/components/use_smile_id_oval_border_palette.js +7 -3
  195. package/dist/presentation/components/use_smile_id_oval_border_palette.js.map +1 -1
  196. package/dist/presentation/flow/dsl/builder/config_builder.d.ts +12 -0
  197. package/dist/presentation/flow/dsl/builder/config_builder.d.ts.map +1 -1
  198. package/dist/presentation/flow/dsl/builder/config_builder.js +12 -0
  199. package/dist/presentation/flow/dsl/builder/config_builder.js.map +1 -1
  200. package/dist/presentation/flow/dsl/builder/ml_builder.d.ts +13 -4
  201. package/dist/presentation/flow/dsl/builder/ml_builder.d.ts.map +1 -1
  202. package/dist/presentation/flow/dsl/builder/ml_builder.js +3 -2
  203. package/dist/presentation/flow/dsl/builder/ml_builder.js.map +1 -1
  204. package/dist/presentation/flow/dsl/builder/screens_builder.d.ts +111 -10
  205. package/dist/presentation/flow/dsl/builder/screens_builder.d.ts.map +1 -1
  206. package/dist/presentation/flow/dsl/builder/screens_builder.js +111 -10
  207. package/dist/presentation/flow/dsl/builder/screens_builder.js.map +1 -1
  208. package/dist/presentation/flow/dsl/builder/theme_builder.d.ts +15 -2
  209. package/dist/presentation/flow/dsl/builder/theme_builder.d.ts.map +1 -1
  210. package/dist/presentation/flow/dsl/builder/theme_builder.js +15 -2
  211. package/dist/presentation/flow/dsl/builder/theme_builder.js.map +1 -1
  212. package/dist/presentation/flow/dsl/use_smile_id_builder.d.ts +6 -4
  213. package/dist/presentation/flow/dsl/use_smile_id_builder.d.ts.map +1 -1
  214. package/dist/presentation/flow/dsl/use_smile_id_builder.js.map +1 -1
  215. package/dist/presentation/flow/dsl/use_smile_id_flow_builder.d.ts +62 -36
  216. package/dist/presentation/flow/dsl/use_smile_id_flow_builder.d.ts.map +1 -1
  217. package/dist/presentation/flow/dsl/use_smile_id_flow_builder.js +62 -36
  218. package/dist/presentation/flow/dsl/use_smile_id_flow_builder.js.map +1 -1
  219. package/dist/presentation/flow/flow_navigation_manager.d.ts +39 -4
  220. package/dist/presentation/flow/flow_navigation_manager.d.ts.map +1 -1
  221. package/dist/presentation/flow/flow_navigation_manager.js +141 -10
  222. package/dist/presentation/flow/flow_navigation_manager.js.map +1 -1
  223. package/dist/presentation/flow/model/instruction_guideline.d.ts +9 -0
  224. package/dist/presentation/flow/model/instruction_guideline.d.ts.map +1 -1
  225. package/dist/presentation/flow/model/instructions_defaults.d.ts +11 -2
  226. package/dist/presentation/flow/model/instructions_defaults.d.ts.map +1 -1
  227. package/dist/presentation/flow/model/instructions_defaults.js +73 -25
  228. package/dist/presentation/flow/model/instructions_defaults.js.map +1 -1
  229. package/dist/presentation/flow/screen/orchestrated_capture_screen.d.ts.map +1 -1
  230. package/dist/presentation/flow/screen/orchestrated_capture_screen.js +36 -12
  231. package/dist/presentation/flow/screen/orchestrated_capture_screen.js.map +1 -1
  232. package/dist/presentation/flow/screen/orchestrated_instructions_screen.js +1 -1
  233. package/dist/presentation/flow/screen/orchestrated_instructions_screen.js.map +1 -1
  234. package/dist/presentation/flow/screen/orchestrated_preview_screen.d.ts.map +1 -1
  235. package/dist/presentation/flow/screen/orchestrated_preview_screen.js +3 -1
  236. package/dist/presentation/flow/screen/orchestrated_preview_screen.js.map +1 -1
  237. package/dist/presentation/flow/screen/orchestrated_processing_screen.js +3 -3
  238. package/dist/presentation/flow/screen/orchestrated_processing_screen.js.map +1 -1
  239. package/dist/presentation/flow/validation/job_type_validator.d.ts.map +1 -1
  240. package/dist/presentation/flow/validation/job_type_validator.js +14 -0
  241. package/dist/presentation/flow/validation/job_type_validator.js.map +1 -1
  242. package/dist/presentation/screen/helpers/capture_screen_helpers.d.ts.map +1 -1
  243. package/dist/presentation/screen/helpers/capture_screen_helpers.js +1 -0
  244. package/dist/presentation/screen/helpers/capture_screen_helpers.js.map +1 -1
  245. package/dist/presentation/screen/helpers/instructions_screen_helpers.d.ts +1 -0
  246. package/dist/presentation/screen/helpers/instructions_screen_helpers.d.ts.map +1 -1
  247. package/dist/presentation/screen/helpers/instructions_screen_helpers.js +6 -2
  248. package/dist/presentation/screen/helpers/instructions_screen_helpers.js.map +1 -1
  249. package/dist/presentation/screen/helpers/scan_state_to_overlay_state.js +3 -0
  250. package/dist/presentation/screen/helpers/scan_state_to_overlay_state.js.map +1 -1
  251. package/dist/presentation/screen/use_smile_id_capture_screen.d.ts +17 -1
  252. package/dist/presentation/screen/use_smile_id_capture_screen.d.ts.map +1 -1
  253. package/dist/presentation/screen/use_smile_id_capture_screen.js +153 -18
  254. package/dist/presentation/screen/use_smile_id_capture_screen.js.map +1 -1
  255. package/dist/presentation/screen/use_smile_id_document_preview_screen.d.ts +2 -3
  256. package/dist/presentation/screen/use_smile_id_document_preview_screen.d.ts.map +1 -1
  257. package/dist/presentation/screen/use_smile_id_document_preview_screen.js +16 -11
  258. package/dist/presentation/screen/use_smile_id_document_preview_screen.js.map +1 -1
  259. package/dist/presentation/screen/use_smile_id_instructions_screen.d.ts +2 -0
  260. package/dist/presentation/screen/use_smile_id_instructions_screen.d.ts.map +1 -1
  261. package/dist/presentation/screen/use_smile_id_instructions_screen.js +2 -1
  262. package/dist/presentation/screen/use_smile_id_instructions_screen.js.map +1 -1
  263. package/dist/presentation/screen/use_smile_id_preview_screen.d.ts +7 -6
  264. package/dist/presentation/screen/use_smile_id_preview_screen.d.ts.map +1 -1
  265. package/dist/presentation/screen/use_smile_id_preview_screen.js +9 -8
  266. package/dist/presentation/screen/use_smile_id_preview_screen.js.map +1 -1
  267. package/dist/presentation/screen/use_smile_id_processing_screen.d.ts +2 -3
  268. package/dist/presentation/screen/use_smile_id_processing_screen.d.ts.map +1 -1
  269. package/dist/presentation/screen/use_smile_id_processing_screen.js +3 -2
  270. package/dist/presentation/screen/use_smile_id_processing_screen.js.map +1 -1
  271. package/dist/presentation/theme/theme.d.ts +1 -1
  272. package/dist/presentation/theme/theme.d.ts.map +1 -1
  273. package/dist/presentation/theme/theme.js +20 -18
  274. package/dist/presentation/theme/theme.js.map +1 -1
  275. package/dist/presentation/utils/force_max_brightness.d.ts +4 -4
  276. package/package.json +26 -6
  277. package/src/__tests__/react_native_mock.tsx +8 -0
  278. package/src/camera/camera_defaults.ts +11 -9
  279. package/src/camera/orientation_degrees.ts +5 -6
  280. package/src/core/models/__tests__/document_type.test.ts +6 -4
  281. package/src/core/models/document_capture_mode.ts +27 -0
  282. package/src/core/models/document_type.ts +6 -4
  283. package/src/core/models/result.ts +9 -8
  284. package/src/data/api/interceptors/__tests__/smile_integrity_interceptor.test.ts +37 -1
  285. package/src/data/api/interceptors/__tests__/smile_request_mac_interceptor.test.ts +59 -1
  286. package/src/data/api/interceptors/smile_auth_interceptor.ts +1 -1
  287. package/src/data/api/interceptors/smile_integrity_interceptor.ts +20 -0
  288. package/src/data/api/interceptors/smile_request_mac_interceptor.ts +13 -0
  289. package/src/data/compression/__tests__/payload_compressor.test.ts +200 -0
  290. package/src/data/compression/__tests__/payload_compressor_real_jpeg.test.ts +222 -0
  291. package/src/data/compression/compressible_asset.ts +62 -0
  292. package/src/data/compression/payload_compression_config.ts +53 -0
  293. package/src/data/compression/payload_compression_runner.ts +102 -0
  294. package/src/data/compression/payload_compressor.ts +164 -0
  295. package/src/data/compression/uri_compressible_asset.ts +85 -0
  296. package/src/data/dsl/builder/cache_config_builder.ts +3 -1
  297. package/src/data/dsl/builder/config_builder.ts +45 -14
  298. package/src/data/dsl/builder/interceptor_config_builder.ts +9 -7
  299. package/src/data/dsl/builder/retry_config_builder.ts +22 -1
  300. package/src/data/dsl/builder/timeout_config_builder.ts +7 -0
  301. package/src/data/dsl/use_smile_id_network_builder.ts +17 -0
  302. package/src/data/factory/networking_factory.ts +14 -1
  303. package/src/data/repository/__tests__/network_retries.test.ts +117 -0
  304. package/src/data/repository/use_smile_id_repository_impl.ts +96 -9
  305. package/src/data/security/__tests__/security_policy.test.ts +96 -0
  306. package/src/data/security/__tests__/smile_id_crypto_manager.test.ts +18 -0
  307. package/src/data/security/request_canonicalizer.ts +15 -2
  308. package/src/data/security/security_policy.ts +70 -0
  309. package/src/data/util/__tests__/use_smile_id_token_decoder.test.ts +57 -1
  310. package/src/data/util/retry_util.ts +3 -2
  311. package/src/data/util/use_smile_id_token_decoder.ts +76 -28
  312. package/src/l10n/strings_en.ts +2 -1
  313. package/src/l10n/use_smile_id_localizations.ts +3 -0
  314. package/src/metadata/__tests__/device_orientation_collector.test.ts +15 -0
  315. package/src/metadata/__tests__/metadata_configuration_mappers.test.ts +215 -0
  316. package/src/metadata/__tests__/metadata_configuration_objects.test.ts +85 -0
  317. package/src/metadata/__tests__/metadata_device_context.test.ts +147 -0
  318. package/src/metadata/__tests__/metadata_golden_fixture.json +13 -0
  319. package/src/metadata/__tests__/metadata_payload_golden.test.ts +193 -0
  320. package/src/metadata/__tests__/use_smile_id_metadata.test.ts +18 -24
  321. package/src/metadata/builder_configuration.ts +63 -0
  322. package/src/metadata/captured_image_properties.ts +10 -0
  323. package/src/metadata/device_orientation_collector.ts +75 -0
  324. package/src/metadata/geolocation.ts +46 -0
  325. package/src/metadata/metadata_configuration_mappers.ts +234 -0
  326. package/src/metadata/model_configuration.ts +68 -0
  327. package/src/metadata/optional_native_modules.ts +157 -3
  328. package/src/metadata/use_smile_id_metadata.ts +140 -17
  329. package/src/metadata/use_smile_id_metadata_factory.ts +195 -11
  330. package/src/presentation/assets/si_ess_animation_all_directions.json +1300 -286
  331. package/src/presentation/assets/svg/document_shimmer_strings.ts +17 -0
  332. package/src/presentation/assets/svg/instruction_svg_strings.ts +34 -12
  333. package/src/presentation/components/__tests__/enhanced_smart_selfie_animation_frames.test.ts +1 -3
  334. package/src/presentation/components/__tests__/use_smile_id_enhanced_smart_selfie_clip.test.tsx +3 -4
  335. package/src/presentation/components/__tests__/use_smile_id_guideline_thumbnail.test.tsx +34 -1
  336. package/src/presentation/components/__tests__/use_smile_id_instructions_hero.test.tsx +27 -0
  337. package/src/presentation/components/__tests__/use_smile_id_oval_border_palette.test.ts +7 -5
  338. package/src/presentation/components/helpers/enhanced_smart_selfie_animation_frames.ts +0 -6
  339. package/src/presentation/components/icons/index.tsx +65 -18
  340. package/src/presentation/components/use_smile_id_attribution.tsx +1 -1
  341. package/src/presentation/components/use_smile_id_button.tsx +4 -4
  342. package/src/presentation/components/use_smile_id_capture_content.tsx +36 -12
  343. package/src/presentation/components/use_smile_id_captured_document_image.tsx +3 -8
  344. package/src/presentation/components/use_smile_id_document_capture_controls.tsx +103 -39
  345. package/src/presentation/components/use_smile_id_document_overlay.tsx +134 -44
  346. package/src/presentation/components/use_smile_id_document_shimmer.tsx +51 -0
  347. package/src/presentation/components/use_smile_id_enhanced_smart_selfie_clip.tsx +0 -3
  348. package/src/presentation/components/use_smile_id_guideline_thumbnail.tsx +131 -2
  349. package/src/presentation/components/use_smile_id_instructions_hero.tsx +100 -59
  350. package/src/presentation/components/use_smile_id_oval_border_palette.ts +7 -3
  351. package/src/presentation/flow/__tests__/document_flow_navigation.test.ts +200 -1
  352. package/src/presentation/flow/dsl/builder/config_builder.ts +14 -0
  353. package/src/presentation/flow/dsl/builder/ml_builder.ts +13 -4
  354. package/src/presentation/flow/dsl/builder/screens_builder.ts +111 -10
  355. package/src/presentation/flow/dsl/builder/theme_builder.ts +19 -2
  356. package/src/presentation/flow/dsl/use_smile_id_builder.tsx +6 -4
  357. package/src/presentation/flow/dsl/use_smile_id_flow_builder.ts +62 -36
  358. package/src/presentation/flow/flow_navigation_manager.ts +179 -13
  359. package/src/presentation/flow/model/instruction_guideline.ts +6 -0
  360. package/src/presentation/flow/model/instructions_defaults.ts +103 -25
  361. package/src/presentation/flow/screen/orchestrated_capture_screen.tsx +43 -10
  362. package/src/presentation/flow/screen/orchestrated_instructions_screen.tsx +1 -0
  363. package/src/presentation/flow/screen/orchestrated_preview_screen.tsx +4 -2
  364. package/src/presentation/flow/screen/orchestrated_processing_screen.tsx +3 -3
  365. package/src/presentation/flow/validation/__tests__/job_type_validator.test.ts +64 -0
  366. package/src/presentation/flow/validation/job_type_validator.ts +24 -0
  367. package/src/presentation/screen/__tests__/instructions_screen_helpers.test.ts +15 -3
  368. package/src/presentation/screen/__tests__/use_smile_id_capture_screen.test.tsx +6 -4
  369. package/src/presentation/screen/helpers/capture_screen_helpers.ts +1 -0
  370. package/src/presentation/screen/helpers/instructions_screen_helpers.ts +7 -2
  371. package/src/presentation/screen/helpers/scan_state_to_overlay_state.ts +3 -0
  372. package/src/presentation/screen/use_smile_id_capture_screen.tsx +234 -36
  373. package/src/presentation/screen/use_smile_id_document_preview_screen.tsx +32 -22
  374. package/src/presentation/screen/use_smile_id_instructions_screen.tsx +4 -0
  375. package/src/presentation/screen/use_smile_id_preview_screen.tsx +9 -9
  376. package/src/presentation/screen/use_smile_id_processing_screen.tsx +7 -7
  377. package/src/presentation/theme/theme.ts +21 -19
  378. package/src/presentation/utils/force_max_brightness.tsx +4 -4
  379. package/dist/camera/frame_processor_plugin.d.ts +0 -28
  380. package/dist/camera/frame_processor_plugin.d.ts.map +0 -1
  381. package/dist/camera/frame_processor_plugin.js +0 -21
  382. package/dist/camera/frame_processor_plugin.js.map +0 -1
  383. package/dist/camera/use_smile_id_frame_processor.d.ts +0 -38
  384. package/dist/camera/use_smile_id_frame_processor.d.ts.map +0 -1
  385. package/dist/camera/use_smile_id_frame_processor.js +0 -2
  386. package/dist/camera/use_smile_id_frame_processor.js.map +0 -1
  387. package/dist/presentation/components/use_smile_id_document_frame_glyph.d.ts +0 -17
  388. package/dist/presentation/components/use_smile_id_document_frame_glyph.d.ts.map +0 -1
  389. package/dist/presentation/components/use_smile_id_document_frame_glyph.js +0 -17
  390. package/dist/presentation/components/use_smile_id_document_frame_glyph.js.map +0 -1
  391. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_animation.d.ts +0 -24
  392. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_animation.d.ts.map +0 -1
  393. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_animation.js +0 -91
  394. package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_animation.js.map +0 -1
  395. package/dist/presentation/components/use_smile_id_instruction_card.d.ts +0 -31
  396. package/dist/presentation/components/use_smile_id_instruction_card.d.ts.map +0 -1
  397. package/dist/presentation/components/use_smile_id_instruction_card.js +0 -43
  398. package/dist/presentation/components/use_smile_id_instruction_card.js.map +0 -1
  399. package/dist/presentation/screen/helpers/use_document_orientation_lock.d.ts +0 -24
  400. package/dist/presentation/screen/helpers/use_document_orientation_lock.d.ts.map +0 -1
  401. package/dist/presentation/screen/helpers/use_document_orientation_lock.js +0 -47
  402. package/dist/presentation/screen/helpers/use_document_orientation_lock.js.map +0 -1
  403. package/src/presentation/components/use_smile_id_document_frame_glyph.tsx +0 -162
@@ -11,13 +11,22 @@ import { LogLevel, } from "../../../core/models/network_config";
11
11
  * identity.
12
12
  */
13
13
  export class PartnerConfigBuilder {
14
+ /** Your Smile ID partner id. Required. */
14
15
  partnerId = "";
16
+ /**
17
+ * Optional webhook URL Smile ID calls with the job result. It is also
18
+ * sent as a per-request identity header.
19
+ */
15
20
  callbackUrl = "";
21
+ /**
22
+ * When true, routes requests to the sandbox environment instead of
23
+ * production. Defaults to false.
24
+ */
16
25
  useSandbox = false;
17
26
  /**
18
- * Optional partner-supplied key/value metadata. Forwarded onto the
19
- * `partner_params` JSON multipart form part on Enhanced / Biometric
20
- * KYC submissions when set.
27
+ * Optional free-form key/value pairs echoed back on the job result for
28
+ * your own correlation. Forwarded onto the `partner_params` JSON
29
+ * multipart form part on Enhanced / Biometric KYC submissions when set.
21
30
  */
22
31
  partnerParams;
23
32
  build() {
@@ -40,8 +49,14 @@ export class PartnerConfigBuilder {
40
49
  * redaction list with their own proxy-injected headers.
41
50
  */
42
51
  export class LoggingConfigBuilder {
52
+ /** Whether HTTP request/response logging is on. */
43
53
  enabled = true;
54
+ /** Logging verbosity: none, basic, headers, or full body. */
44
55
  level = LogLevel.basic;
56
+ /**
57
+ * Header names whose values are masked in logs (for example
58
+ * authorization headers).
59
+ */
45
60
  redactHeaders = [];
46
61
  build() {
47
62
  return Object.freeze({
@@ -64,31 +79,42 @@ export class LoggingConfigBuilder {
64
79
  * omit blocks they don't need.
65
80
  */
66
81
  export class ConfigBuilder {
82
+ /**
83
+ * The verification job this flow submits (for example smart-selfie
84
+ * enrollment, biometric KYC, or document verification). Required.
85
+ */
67
86
  jobType;
68
87
  /**
69
- * Short-lived v3 auth token issued by `/v3/token`. The partner
70
- * application is responsible for exchanging its API key for a token
71
- * before invoking the SDK and supplying the result here. Stamped as
72
- * the `smileid-token` HTTP header on every authenticated request.
88
+ * The short-lived authentication token for this session. Your backend
89
+ * obtains it from Smile ID's `/v3/token` endpoint using your API key;
90
+ * the SDK never exchanges credentials itself. Stamped as the
91
+ * `smileid-token` HTTP header on every authenticated request.
73
92
  */
74
93
  token = "";
75
94
  /**
76
- * Optional async refresh callback invoked when the server responds
77
- * with `401 Unauthorized`. The callback receives the token the SDK
78
- * was using and returns a fresh token; the SDK then retries the
79
- * original request once with the new value. Concurrent 401s collapse
80
- * to a single callback invocation via the SDK's shared `TokenHolder`.
81
- * If the callback throws or the retry also returns 401, the original
82
- * 401 response is surfaced unchanged.
95
+ * Optional async callback invoked when the server rejects the token
96
+ * with a 401. Return a fresh token and the SDK retries the request
97
+ * once with it. The callback receives the token the SDK was using.
98
+ * Concurrent 401s collapse to a single callback invocation via the
99
+ * SDK's shared `TokenHolder`. If the callback throws or the retry also
100
+ * returns 401, the original 401 response is surfaced unchanged.
83
101
  */
84
102
  onTokenExpired;
85
103
  _partnerConfig;
86
104
  _logging;
105
+ /**
106
+ * Configures partner identity and per-job environment settings —
107
+ * partner id, callback URL, sandbox mode, and partner params.
108
+ */
87
109
  partnerConfig(block) {
88
110
  if (!this._partnerConfig)
89
111
  this._partnerConfig = new PartnerConfigBuilder();
90
112
  block(this._partnerConfig);
91
113
  }
114
+ /**
115
+ * Configures HTTP request/response logging: on/off, verbosity, and
116
+ * redacted headers.
117
+ */
92
118
  logging(block) {
93
119
  if (!this._logging)
94
120
  this._logging = new LoggingConfigBuilder();
@@ -1 +1 @@
1
- {"version":3,"file":"config_builder.js","sourceRoot":"","sources":["../../../../src/data/dsl/builder/config_builder.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,GAIT,MAAM,qCAAqC,CAAC;AAE7C;;;;;;;;;;GAUG;AACH,MAAM,OAAO,oBAAoB;IAC/B,SAAS,GAAG,EAAE,CAAC;IACf,WAAW,GAAG,EAAE,CAAC;IACjB,UAAU,GAAG,KAAK,CAAC;IACnB;;;;OAIG;IACH,aAAa,CAA0B;IAEvC,KAAK;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS;gBAClC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE;gBAC7D,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,oBAAoB;IAC/B,OAAO,GAAG,IAAI,CAAC;IACf,KAAK,GAAa,QAAQ,CAAC,KAAK,CAAC;IACjC,aAAa,GAAsB,EAAE,CAAC;IAEtC,KAAK;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,aAAa;IACxB,OAAO,CAAW;IAElB;;;;;OAKG;IACH,KAAK,GAAG,EAAE,CAAC;IAEX;;;;;;;;OAQG;IACH,cAAc,CAA8C;IAEpD,cAAc,CAAwB;IACtC,QAAQ,CAAwB;IAExC,aAAa,CAAC,KAAwC;QACpD,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,IAAI,CAAC,cAAc,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC3E,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,KAAwC;QAC9C,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC/D,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IAED,KAAK;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,SAAS;gBACnC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE;gBACzC,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,cAAc;gBACrB,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE;gBAChD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"config_builder.js","sourceRoot":"","sources":["../../../../src/data/dsl/builder/config_builder.ts"],"names":[],"mappings":"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"}
@@ -19,18 +19,20 @@ import { LogLevel, type Interceptor } from "../../../core/models/network_config"
19
19
  */
20
20
  export declare class InterceptorConfigBuilder {
21
21
  private _interceptors;
22
+ /** Appends a custom interceptor to the chain. */
22
23
  add(interceptor: Interceptor): void;
23
24
  /**
24
- * Returns an interceptor that stamps `Accept-Encoding: gzip` on
25
- * every outbound request. Hint-only — the SDK does not pull in a
26
- * JS gzip dependency to compress request bodies. See
27
- * [createGzipInterceptor] for the rationale.
25
+ * Adds the gzip interceptor, which requests compressed responses by
26
+ * stamping `Accept-Encoding: gzip` on every outbound request.
27
+ * Hint-only — the SDK does not pull in a JS gzip dependency to
28
+ * compress request bodies. See [createGzipInterceptor] for the
29
+ * rationale.
28
30
  */
29
31
  gzip(): Interceptor;
30
32
  /**
31
- * Returns a logging interceptor configured by `configure`. The
32
- * partner block mutates a `LoggingInterceptorBuilder` carrying
33
- * `level` and `redactHeaders`.
33
+ * Adds the logging interceptor with the given verbosity. The partner
34
+ * block mutates a `LoggingInterceptorBuilder` carrying `level` and
35
+ * `redactHeaders`.
34
36
  */
35
37
  logging(configure?: (builder: LoggingInterceptorBuilder) => void): Interceptor;
36
38
  build(): readonly Interceptor[];
@@ -1 +1 @@
1
- {"version":3,"file":"interceptor_config_builder.d.ts","sourceRoot":"","sources":["../../../../src/data/dsl/builder/interceptor_config_builder.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EACR,KAAK,WAAW,EAEjB,MAAM,qCAAqC,CAAC;AAE7C;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,aAAa,CAAqB;IAE1C,GAAG,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAInC;;;;;OAKG;IACH,IAAI,IAAI,WAAW;IAInB;;;;OAIG;IACH,OAAO,CACL,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,IAAI,GACvD,WAAW;IAiBd,KAAK,IAAI,SAAS,WAAW,EAAE;CAGhC;AAED;;GAEG;AACH,qBAAa,yBAAyB;IACpC,OAAO,UAAQ;IACf,KAAK,EAAE,QAAQ,CAAkB;IACjC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAM;CACvC"}
1
+ {"version":3,"file":"interceptor_config_builder.d.ts","sourceRoot":"","sources":["../../../../src/data/dsl/builder/interceptor_config_builder.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EACR,KAAK,WAAW,EAEjB,MAAM,qCAAqC,CAAC;AAE7C;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,aAAa,CAAqB;IAE1C,iDAAiD;IACjD,GAAG,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAInC;;;;;;OAMG;IACH,IAAI,IAAI,WAAW;IAInB;;;;OAIG;IACH,OAAO,CACL,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,IAAI,GACvD,WAAW;IAiBd,KAAK,IAAI,SAAS,WAAW,EAAE;CAGhC;AAED;;GAEG;AACH,qBAAa,yBAAyB;IACpC,OAAO,UAAQ;IACf,KAAK,EAAE,QAAQ,CAAkB;IACjC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAM;CACvC"}
@@ -21,22 +21,24 @@ import { LogLevel, } from "../../../core/models/network_config";
21
21
  */
22
22
  export class InterceptorConfigBuilder {
23
23
  _interceptors = [];
24
+ /** Appends a custom interceptor to the chain. */
24
25
  add(interceptor) {
25
26
  this._interceptors.push(interceptor);
26
27
  }
27
28
  /**
28
- * Returns an interceptor that stamps `Accept-Encoding: gzip` on
29
- * every outbound request. Hint-only — the SDK does not pull in a
30
- * JS gzip dependency to compress request bodies. See
31
- * [createGzipInterceptor] for the rationale.
29
+ * Adds the gzip interceptor, which requests compressed responses by
30
+ * stamping `Accept-Encoding: gzip` on every outbound request.
31
+ * Hint-only — the SDK does not pull in a JS gzip dependency to
32
+ * compress request bodies. See [createGzipInterceptor] for the
33
+ * rationale.
32
34
  */
33
35
  gzip() {
34
36
  return createGzipInterceptor();
35
37
  }
36
38
  /**
37
- * Returns a logging interceptor configured by `configure`. The
38
- * partner block mutates a `LoggingInterceptorBuilder` carrying
39
- * `level` and `redactHeaders`.
39
+ * Adds the logging interceptor with the given verbosity. The partner
40
+ * block mutates a `LoggingInterceptorBuilder` carrying `level` and
41
+ * `redactHeaders`.
40
42
  */
41
43
  logging(configure) {
42
44
  const builder = new LoggingInterceptorBuilder();
@@ -1 +1 @@
1
- {"version":3,"file":"interceptor_config_builder.js","sourceRoot":"","sources":["../../../../src/data/dsl/builder/interceptor_config_builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EACL,QAAQ,GAGT,MAAM,qCAAqC,CAAC;AAE7C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,wBAAwB;IAC3B,aAAa,GAAkB,EAAE,CAAC;IAE1C,GAAG,CAAC,WAAwB;QAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,IAAI;QACF,OAAO,qBAAqB,EAAE,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,OAAO,CACL,SAAwD;QAExD,MAAM,OAAO,GAAG,IAAI,yBAAyB,EAAE,CAAC;QAChD,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,aAAa,GAAyB,MAAM,CAAC,MAAM,CAAC;YACxD,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;SACzD,CAAC,CAAC;QACH,OAAO;YACL,MAAM,CAAC,MAAqB;gBAC1B,wBAAwB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;YAClD,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK;QACH,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAChD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,yBAAyB;IACpC,OAAO,GAAG,IAAI,CAAC;IACf,KAAK,GAAa,QAAQ,CAAC,KAAK,CAAC;IACjC,aAAa,GAAsB,EAAE,CAAC;CACvC"}
1
+ {"version":3,"file":"interceptor_config_builder.js","sourceRoot":"","sources":["../../../../src/data/dsl/builder/interceptor_config_builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EACL,QAAQ,GAGT,MAAM,qCAAqC,CAAC;AAE7C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,wBAAwB;IAC3B,aAAa,GAAkB,EAAE,CAAC;IAE1C,iDAAiD;IACjD,GAAG,CAAC,WAAwB;QAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;OAMG;IACH,IAAI;QACF,OAAO,qBAAqB,EAAE,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,OAAO,CACL,SAAwD;QAExD,MAAM,OAAO,GAAG,IAAI,yBAAyB,EAAE,CAAC;QAChD,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,aAAa,GAAyB,MAAM,CAAC,MAAM,CAAC;YACxD,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;SACzD,CAAC,CAAC;QACH,OAAO;YACL,MAAM,CAAC,MAAqB;gBAC1B,wBAAwB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;YAClD,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK;QACH,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAChD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,yBAAyB;IACpC,OAAO,GAAG,IAAI,CAAC;IACf,KAAK,GAAa,QAAQ,CAAC,KAAK,CAAC;IACjC,aAAa,GAAsB,EAAE,CAAC;CACvC"}
@@ -8,13 +8,28 @@ export { RetryStrategy };
8
8
  * `strategy = RetryStrategy.fixed`.
9
9
  */
10
10
  export declare class RetryConfigBuilder {
11
+ /** Maximum number of attempts per request, including the first. */
11
12
  maxAttempts: number;
13
+ /** Backoff strategy between attempts: exponential, fixed, or none. */
12
14
  strategy: RetryStrategy;
15
+ /** Delay before the first retry, in seconds (exponential strategy). */
13
16
  initialDelay: number;
17
+ /**
18
+ * Factor by which the delay grows after each attempt (exponential
19
+ * strategy).
20
+ */
14
21
  multiplier: number;
22
+ /**
23
+ * Upper bound on the delay between attempts, in seconds (exponential
24
+ * strategy).
25
+ */
15
26
  maxDelay: number;
16
- /** ±20% randomized jitter on the computed delay, in [0, 1]. */
27
+ /**
28
+ * Random fraction between 0 and 1 added to each delay to avoid
29
+ * synchronized retry storms.
30
+ */
17
31
  jitter: number;
32
+ /** Constant delay between attempts, in seconds (fixed strategy). */
18
33
  fixedDelay: number;
19
34
  build(): RetryConfig;
20
35
  }
@@ -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,WAAW,SAAK;IAChB,QAAQ,EAAE,aAAa,CAA6B;IACpD,YAAY,SAAK;IACjB,UAAU,SAAK;IACf,QAAQ,SAAM;IACd,+DAA+D;IAC/D,MAAM,SAAO;IACb,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,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"}
@@ -8,13 +8,28 @@ export { RetryStrategy };
8
8
  * `strategy = RetryStrategy.fixed`.
9
9
  */
10
10
  export class RetryConfigBuilder {
11
+ /** Maximum number of attempts per request, including the first. */
11
12
  maxAttempts = 3;
13
+ /** Backoff strategy between attempts: exponential, fixed, or none. */
12
14
  strategy = RetryStrategy.exponential;
15
+ /** Delay before the first retry, in seconds (exponential strategy). */
13
16
  initialDelay = 1;
17
+ /**
18
+ * Factor by which the delay grows after each attempt (exponential
19
+ * strategy).
20
+ */
14
21
  multiplier = 2;
22
+ /**
23
+ * Upper bound on the delay between attempts, in seconds (exponential
24
+ * strategy).
25
+ */
15
26
  maxDelay = 32;
16
- /** ±20% randomized jitter on the computed delay, in [0, 1]. */
27
+ /**
28
+ * Random fraction between 0 and 1 added to each delay to avoid
29
+ * synchronized retry storms.
30
+ */
17
31
  jitter = 0.2;
32
+ /** Constant delay between attempts, in seconds (fixed strategy). */
18
33
  fixedDelay = 1;
19
34
  build() {
20
35
  return Object.freeze({
@@ -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,WAAW,GAAG,CAAC,CAAC;IAChB,QAAQ,GAAkB,aAAa,CAAC,WAAW,CAAC;IACpD,YAAY,GAAG,CAAC,CAAC;IACjB,UAAU,GAAG,CAAC,CAAC;IACf,QAAQ,GAAG,EAAE,CAAC;IACd,+DAA+D;IAC/D,MAAM,GAAG,GAAG,CAAC;IACb,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,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"}
@@ -7,9 +7,13 @@ import type { TimeoutConfig } from "../../../core/models/network_config";
7
7
  * the end-to-end ceiling for the whole request including retries.
8
8
  */
9
9
  export declare class TimeoutConfigBuilder {
10
+ /** Maximum time to establish a connection, in seconds. */
10
11
  connect: number;
12
+ /** Maximum time to wait for response data, in seconds. */
11
13
  read: number;
14
+ /** Maximum time to send request data, in seconds. */
12
15
  write: number;
16
+ /** Maximum total time for the entire request, in seconds. */
13
17
  call: number;
14
18
  build(): TimeoutConfig;
15
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"timeout_config_builder.d.ts","sourceRoot":"","sources":["../../../../src/data/dsl/builder/timeout_config_builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEzE;;;;;;GAMG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,SAAM;IACb,IAAI,SAAM;IACV,KAAK,SAAM;IACX,IAAI,SAAO;IAEX,KAAK,IAAI,aAAa;CAQvB"}
1
+ {"version":3,"file":"timeout_config_builder.d.ts","sourceRoot":"","sources":["../../../../src/data/dsl/builder/timeout_config_builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEzE;;;;;;GAMG;AACH,qBAAa,oBAAoB;IAC/B,0DAA0D;IAC1D,OAAO,SAAM;IAEb,0DAA0D;IAC1D,IAAI,SAAM;IAEV,qDAAqD;IACrD,KAAK,SAAM;IAEX,6DAA6D;IAC7D,IAAI,SAAO;IAEX,KAAK,IAAI,aAAa;CAQvB"}
@@ -6,9 +6,13 @@
6
6
  * the end-to-end ceiling for the whole request including retries.
7
7
  */
8
8
  export class TimeoutConfigBuilder {
9
+ /** Maximum time to establish a connection, in seconds. */
9
10
  connect = 60;
11
+ /** Maximum time to wait for response data, in seconds. */
10
12
  read = 60;
13
+ /** Maximum time to send request data, in seconds. */
11
14
  write = 60;
15
+ /** Maximum total time for the entire request, in seconds. */
12
16
  call = 120;
13
17
  build() {
14
18
  return Object.freeze({
@@ -1 +1 @@
1
- {"version":3,"file":"timeout_config_builder.js","sourceRoot":"","sources":["../../../../src/data/dsl/builder/timeout_config_builder.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,OAAO,oBAAoB;IAC/B,OAAO,GAAG,EAAE,CAAC;IACb,IAAI,GAAG,EAAE,CAAC;IACV,KAAK,GAAG,EAAE,CAAC;IACX,IAAI,GAAG,GAAG,CAAC;IAEX,KAAK;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"timeout_config_builder.js","sourceRoot":"","sources":["../../../../src/data/dsl/builder/timeout_config_builder.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,OAAO,oBAAoB;IAC/B,0DAA0D;IAC1D,OAAO,GAAG,EAAE,CAAC;IAEb,0DAA0D;IAC1D,IAAI,GAAG,EAAE,CAAC;IAEV,qDAAqD;IACrD,KAAK,GAAG,EAAE,CAAC;IAEX,6DAA6D;IAC7D,IAAI,GAAG,GAAG,CAAC;IAEX,KAAK;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -27,10 +27,27 @@ export declare class UseSmileIDNetworkBuilder {
27
27
  private _cache?;
28
28
  private _retry?;
29
29
  private _interceptors?;
30
+ /**
31
+ * Configures the job type, authentication token, token-refresh
32
+ * callback, and partner identity for this flow.
33
+ */
30
34
  config(block: (c: ConfigBuilder) => void): void;
35
+ /**
36
+ * Configures per-phase HTTP timeouts — connect, read, write, and
37
+ * overall call — in seconds.
38
+ */
31
39
  timeouts(block: (t: TimeoutConfigBuilder) => void): void;
40
+ /** Configures the HTTP response cache (on/off and maximum size). */
32
41
  cache(block: (c: CacheConfigBuilder) => void): void;
42
+ /**
43
+ * Configures automatic retry of failed requests: strategy, attempt
44
+ * count, and backoff.
45
+ */
33
46
  retry(block: (r: RetryConfigBuilder) => void): void;
47
+ /**
48
+ * Registers additional request/response interceptors, appended to the
49
+ * SDK's interceptor chain.
50
+ */
34
51
  interceptors(block: (i: InterceptorConfigBuilder) => void): void;
35
52
  build(): NetworkConfig;
36
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use_smile_id_network_builder.d.ts","sourceRoot":"","sources":["../../../src/data/dsl/use_smile_id_network_builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,SAAS,CAAC,CAAuB;IACzC,OAAO,CAAC,MAAM,CAAC,CAAqB;IACpC,OAAO,CAAC,MAAM,CAAC,CAAqB;IACpC,OAAO,CAAC,aAAa,CAAC,CAA2B;IAEjD,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI;IAK/C,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,oBAAoB,KAAK,IAAI,GAAG,IAAI;IAKxD,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,kBAAkB,KAAK,IAAI,GAAG,IAAI;IAKnD,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,kBAAkB,KAAK,IAAI,GAAG,IAAI;IAKnD,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,wBAAwB,KAAK,IAAI,GAAG,IAAI;IAMhE,KAAK,IAAI,aAAa;CAWvB"}
1
+ {"version":3,"file":"use_smile_id_network_builder.d.ts","sourceRoot":"","sources":["../../../src/data/dsl/use_smile_id_network_builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,SAAS,CAAC,CAAuB;IACzC,OAAO,CAAC,MAAM,CAAC,CAAqB;IACpC,OAAO,CAAC,MAAM,CAAC,CAAqB;IACpC,OAAO,CAAC,aAAa,CAAC,CAA2B;IAEjD;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI;IAK/C;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,oBAAoB,KAAK,IAAI,GAAG,IAAI;IAKxD,oEAAoE;IACpE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,kBAAkB,KAAK,IAAI,GAAG,IAAI;IAKnD;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,kBAAkB,KAAK,IAAI,GAAG,IAAI;IAKnD;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,wBAAwB,KAAK,IAAI,GAAG,IAAI;IAMhE,KAAK,IAAI,aAAa;CAWvB"}
@@ -26,26 +26,43 @@ export class UseSmileIDNetworkBuilder {
26
26
  _cache;
27
27
  _retry;
28
28
  _interceptors;
29
+ /**
30
+ * Configures the job type, authentication token, token-refresh
31
+ * callback, and partner identity for this flow.
32
+ */
29
33
  config(block) {
30
34
  if (!this._config)
31
35
  this._config = new ConfigBuilder();
32
36
  block(this._config);
33
37
  }
38
+ /**
39
+ * Configures per-phase HTTP timeouts — connect, read, write, and
40
+ * overall call — in seconds.
41
+ */
34
42
  timeouts(block) {
35
43
  if (!this._timeouts)
36
44
  this._timeouts = new TimeoutConfigBuilder();
37
45
  block(this._timeouts);
38
46
  }
47
+ /** Configures the HTTP response cache (on/off and maximum size). */
39
48
  cache(block) {
40
49
  if (!this._cache)
41
50
  this._cache = new CacheConfigBuilder();
42
51
  block(this._cache);
43
52
  }
53
+ /**
54
+ * Configures automatic retry of failed requests: strategy, attempt
55
+ * count, and backoff.
56
+ */
44
57
  retry(block) {
45
58
  if (!this._retry)
46
59
  this._retry = new RetryConfigBuilder();
47
60
  block(this._retry);
48
61
  }
62
+ /**
63
+ * Registers additional request/response interceptors, appended to the
64
+ * SDK's interceptor chain.
65
+ */
49
66
  interceptors(block) {
50
67
  if (!this._interceptors)
51
68
  this._interceptors = new InterceptorConfigBuilder();
@@ -1 +1 @@
1
- {"version":3,"file":"use_smile_id_network_builder.js","sourceRoot":"","sources":["../../../src/data/dsl/use_smile_id_network_builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,wBAAwB;IAC3B,OAAO,CAAiB;IACxB,SAAS,CAAwB;IACjC,MAAM,CAAsB;IAC5B,MAAM,CAAsB;IAC5B,aAAa,CAA4B;IAEjD,MAAM,CAAC,KAAiC;QACtC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,QAAQ,CAAC,KAAwC;QAC/C,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,KAAsC;QAC1C,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,KAAsC;QAC1C,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAED,YAAY,CAAC,KAA4C;QACvD,IAAI,CAAC,IAAI,CAAC,aAAa;YACrB,IAAI,CAAC,aAAa,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,aAAa;gBACpB,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE;gBAC9C,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"use_smile_id_network_builder.js","sourceRoot":"","sources":["../../../src/data/dsl/use_smile_id_network_builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,wBAAwB;IAC3B,OAAO,CAAiB;IACxB,SAAS,CAAwB;IACjC,MAAM,CAAsB;IAC5B,MAAM,CAAsB;IAC5B,aAAa,CAA4B;IAEjD;;;OAGG;IACH,MAAM,CAAC,KAAiC;QACtC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,KAAwC;QAC/C,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IAED,oEAAoE;IACpE,KAAK,CAAC,KAAsC;QAC1C,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAsC;QAC1C,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,KAA4C;QACvD,IAAI,CAAC,IAAI,CAAC,aAAa;YACrB,IAAI,CAAC,aAAa,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,aAAa;gBACpB,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE;gBAC9C,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"networking_factory.d.ts","sourceRoot":"","sources":["../../../src/data/factory/networking_factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EACL,UAAU,EAIX,MAAM,qBAAqB,CAAC;AAU7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAErF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EAGrB,aAAa,GAAE,MAAM,MAAoD,GACxE;IACD,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;CACrC,CAoHA"}
1
+ {"version":3,"file":"networking_factory.d.ts","sourceRoot":"","sources":["../../../src/data/factory/networking_factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EACL,UAAU,EAIX,MAAM,qBAAqB,CAAC;AAY7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAErF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EAGrB,aAAa,GAAE,MAAM,MAAoD,GACxE;IACD,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;CACrC,CA+HA"}
@@ -5,6 +5,8 @@ import { SmileIntegrityInterceptor } from "../api/interceptors/smile_integrity_i
5
5
  import { TokenRefreshInterceptor } from "../api/interceptors/token_refresh_interceptor";
6
6
  import { TokenHolder } from "../api/auth/token_holder";
7
7
  import { SmileIDCryptoManager } from "../security/smile_id_crypto_manager";
8
+ import { SecurityPolicy } from "../security/security_policy";
9
+ import { decodeSecurityPolicyBitCode } from "../util/use_smile_id_token_decoder";
8
10
  import { Attestation, SigningSecretProvider } from "@smileid/usesmileid_bridge";
9
11
  import { MissingPartnerConfigException } from "../../core/exception";
10
12
  import { UseSmileIDMetadataFactory } from "../../metadata/use_smile_id_metadata_factory";
@@ -88,6 +90,11 @@ signingSecret = () => SigningSecretProvider.signingSecret()) {
88
90
  // TokenRefreshInterceptor writes a refreshed value on a 401 so the
89
91
  // next outgoing request automatically picks up the new token.
90
92
  const tokenHolder = new TokenHolder(config.config?.token ?? "");
93
+ // Server-driven security policy for this flow, decoded from the top-level `policy` claim on the
94
+ // JWT (a sibling of `sdk_config`). Decoding is fail-secure: a malformed token, an absent claim, or an absent
95
+ // bit-code all resolve to "every behaviour active", so a token without the claim keeps the
96
+ // pre-policy behaviour rather than dropping security.
97
+ const securityPolicy = SecurityPolicy.fromBitCode(decodeSecurityPolicyBitCode(config.config?.token ?? ""));
91
98
  // 1. Gzip is registered FIRST so it runs LAST on the request path
92
99
  // (innermost / closest to the wire). It stamps `Accept-Encoding:
93
100
  // gzip` so the server can compress responses (axios
@@ -107,7 +114,9 @@ signingSecret = () => SigningSecretProvider.signingSecret()) {
107
114
  // request path — it reads the `smileid-request-mac` header the MAC
108
115
  // interceptor sets and binds the per-request token to it. Per-request
109
116
  // opt-in via `config._useSmileIDAttestation`; pass-through otherwise.
110
- const integrityInterceptor = new SmileIntegrityInterceptor();
117
+ const integrityInterceptor = new SmileIntegrityInterceptor({
118
+ securityPolicy,
119
+ });
111
120
  integrityInterceptor.attach(client);
112
121
  // 4. Request MAC runs after auth (so the `smileid-*` headers + timestamp it
113
122
  // signs are present) and before integrity (which binds to the MAC). The
@@ -116,6 +125,7 @@ signingSecret = () => SigningSecretProvider.signingSecret()) {
116
125
  const cryptoManager = new SmileIDCryptoManager(signingSecret());
117
126
  const requestMacInterceptor = new SmileRequestMacInterceptor({
118
127
  cryptoManager,
128
+ securityPolicy,
119
129
  });
120
130
  requestMacInterceptor.attach(client);
121
131
  // 5. Auth is registered LAST of these three so it runs FIRST on the request
@@ -1 +1 @@
1
- {"version":3,"file":"networking_factory.js","sourceRoot":"","sources":["../../../src/data/factory/networking_factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"networking_factory.js","sourceRoot":"","sources":["../../../src/data/factory/networking_factory.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,12 @@ export declare class UseSmileIDRepositoryImpl {
16
16
  private readonly _retry;
17
17
  constructor(api: SmileIDAPI, retry: RetryConfig);
18
18
  submit(request: JobRequest): Promise<UseSmileIDResult<JobSubmissionResponse>>;
19
+ /**
20
+ * Pre-flight payload compression entry — extracts the captured image URIs for the job type and
21
+ * compresses the bundle under the transmission cap (metadata is measured, never modified).
22
+ * No-op for job types that carry no captured images (Enhanced KYC / BVN).
23
+ */
24
+ private _compressPayload;
19
25
  private _dispatch;
20
26
  /**
21
27
  * Translate any caught error into the typed
@@ -1 +1 @@
1
- {"version":3,"file":"use_smile_id_repository_impl.d.ts","sourceRoot":"","sources":["../../../src/data/repository/use_smile_id_repository_impl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAWjE;;;;;;;GAOG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAEzB,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW;IAKzC,MAAM,CACV,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;IA8BnD,OAAO,CAAC,SAAS;IAmBjB;;;;;;OAMG;IACH,OAAO,CAAC,SAAS;CAGlB"}
1
+ {"version":3,"file":"use_smile_id_repository_impl.d.ts","sourceRoot":"","sources":["../../../src/data/repository/use_smile_id_repository_impl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAkCjE;;;;;;;GAOG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAEzB,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW;IAKzC,MAAM,CACV,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;IAiDnD;;;;OAIG;YACW,gBAAgB;IA2B9B,OAAO,CAAC,SAAS;IAgCjB;;;;;;OAMG;IACH,OAAO,CAAC,SAAS;CAGlB"}
@@ -4,6 +4,22 @@ import { withRetry } from "../util/retry_util";
4
4
  import { InvalidFieldValueException } from "../../core/exception/job_validation_exceptions";
5
5
  import { UseSmileIDValidationException } from "../../core/exception/use_smile_id_validation_exception";
6
6
  import { mapAxiosError, } from "../../core/exception/use_smile_id_network_exception";
7
+ import { PayloadCompressionRunner, } from "../compression/payload_compression_runner";
8
+ /** Builds the per-image original/final compressed size wire entries, omitting absent/zero sizes. */
9
+ function compressionSizeEntries(sizes) {
10
+ const entries = [];
11
+ const push = (name, value) => {
12
+ if (value !== undefined && value > 0)
13
+ entries.push({ name, value: String(value) });
14
+ };
15
+ push("selfie_original_size", sizes.selfieOriginalMb);
16
+ push("selfie_final_compressed_size", sizes.selfieFinalMb);
17
+ push("document_front_original_size", sizes.frontOriginalMb);
18
+ push("document_front_final_compressed_size", sizes.frontFinalMb);
19
+ push("document_back_original_size", sizes.backOriginalMb);
20
+ push("document_back_final_compressed_size", sizes.backFinalMb);
21
+ return entries;
22
+ }
7
23
  /**
8
24
  * Concrete repository.
9
25
  *
@@ -30,8 +46,26 @@ export class UseSmileIDRepositoryImpl {
30
46
  reason: "BVN submission is not yet supported",
31
47
  }));
32
48
  }
49
+ // Pre-flight payload compression — best effort: shrink the captured JPEGs under the Lambda
50
+ // cap before transmission (runs once, outside the retry loop), but never block submission, so
51
+ // any compression failure ships the captured images as-is and lets the server validate. The
52
+ // per-image original + final compressed sizes are stamped onto the metadata for telemetry.
53
+ let submitted = request;
54
+ try {
55
+ const sizes = await this._compressPayload(request);
56
+ const sizeEntries = sizes ? compressionSizeEntries(sizes) : [];
57
+ if (sizeEntries.length > 0) {
58
+ submitted = {
59
+ ...request,
60
+ metadata: request.metadata.withAdditionalEntries(sizeEntries),
61
+ };
62
+ }
63
+ }
64
+ catch {
65
+ // Best-effort: compression is an optimization; submit the captured images as-is on failure.
66
+ }
33
67
  try {
34
- const response = await withRetry(this._retry, () => this._dispatch(request));
68
+ const response = await withRetry(this._retry, (attempt) => this._dispatch(submitted, attempt));
35
69
  return success(response);
36
70
  }
37
71
  catch (error) {
@@ -45,20 +79,60 @@ export class UseSmileIDRepositoryImpl {
45
79
  return failure(this._mapError(error));
46
80
  }
47
81
  }
48
- _dispatch(request) {
82
+ /**
83
+ * Pre-flight payload compression entry — extracts the captured image URIs for the job type and
84
+ * compresses the bundle under the transmission cap (metadata is measured, never modified).
85
+ * No-op for job types that carry no captured images (Enhanced KYC / BVN).
86
+ */
87
+ async _compressPayload(request) {
88
+ const metadataBytes = JSON.stringify(request.metadata.toEntries()).length;
49
89
  switch (request.jobType) {
50
90
  case JobType.smartSelfieEnrollment:
51
- return this._api.smartSelfieEnrollment(request);
52
91
  case JobType.smartSelfieAuthentication:
53
- return this._api.smartSelfieAuthentication(request);
92
+ case JobType.biometricKyc:
93
+ return PayloadCompressionRunner.compress({
94
+ selfieImage: request.selfieImage,
95
+ livenessImages: request.livenessImages,
96
+ metadataBytes,
97
+ });
98
+ case JobType.documentVerification:
99
+ case JobType.enhancedDocumentVerification:
100
+ return PayloadCompressionRunner.compress({
101
+ selfieImage: request.selfieImage,
102
+ livenessImages: request.livenessImages,
103
+ frontDocument: request.frontDocument,
104
+ backDocument: request.backDocument,
105
+ metadataBytes,
106
+ });
107
+ default:
108
+ return undefined;
109
+ }
110
+ }
111
+ _dispatch(request, attempt) {
112
+ // Stamp how many network retries preceded this attempt onto the metadata
113
+ // (re-evaluated per attempt inside the retry loop). Appended as a flow-state
114
+ // entry so the already-appended document / config entries are preserved.
115
+ const stamped = attempt > 0
116
+ ? {
117
+ ...request,
118
+ metadata: request.metadata.withAdditionalEntries([
119
+ { name: "network_retries", value: String(attempt) },
120
+ ]),
121
+ }
122
+ : request;
123
+ switch (stamped.jobType) {
124
+ case JobType.smartSelfieEnrollment:
125
+ return this._api.smartSelfieEnrollment(stamped);
126
+ case JobType.smartSelfieAuthentication:
127
+ return this._api.smartSelfieAuthentication(stamped);
54
128
  case JobType.enhancedKyc:
55
- return this._api.enhancedKyc(request);
129
+ return this._api.enhancedKyc(stamped);
56
130
  case JobType.biometricKyc:
57
- return this._api.biometricKyc(request);
131
+ return this._api.biometricKyc(stamped);
58
132
  case JobType.documentVerification:
59
- return this._api.documentVerification(request);
133
+ return this._api.documentVerification(stamped);
60
134
  case JobType.enhancedDocumentVerification:
61
- return this._api.enhancedDocumentVerification(request);
135
+ return this._api.enhancedDocumentVerification(stamped);
62
136
  }
63
137
  }
64
138
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"use_smile_id_repository_impl.js","sourceRoot":"","sources":["../../../src/data/repository/use_smile_id_repository_impl.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAC;AAC5F,OAAO,EAAE,6BAA6B,EAAE,MAAM,wDAAwD,CAAC;AACvG,OAAO,EACL,aAAa,GAEd,MAAM,qDAAqD,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,OAAO,wBAAwB;IAClB,IAAI,CAAa;IACjB,MAAM,CAAc;IAErC,YAAY,GAAe,EAAE,KAAkB;QAC7C,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,OAAmB;QAEnB,iEAAiE;QACjE,kEAAkE;QAClE,6DAA6D;QAC7D,UAAU;QACV,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC;YACpC,OAAO,OAAO,CACZ,IAAI,0BAA0B,CAAC;gBAC7B,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,qCAAqC;aAC9C,CAAC,CACH,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CACjD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CACxB,CAAC;YACF,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,6DAA6D;YAC7D,iEAAiE;YACjE,oEAAoE;YACpE,uDAAuD;YACvD,IAAI,KAAK,YAAY,6BAA6B,EAAE,CAAC;gBACnD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAEO,SAAS,CACf,OAA6D;QAE7D,QAAQ,OAAO,CAAC,OAAO,EAAE,CAAC;YACxB,KAAK,OAAO,CAAC,qBAAqB;gBAChC,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAClD,KAAK,OAAO,CAAC,yBAAyB;gBACpC,OAAO,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;YACtD,KAAK,OAAO,CAAC,WAAW;gBACtB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACxC,KAAK,OAAO,CAAC,YAAY;gBACvB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACzC,KAAK,OAAO,CAAC,oBAAoB;gBAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACjD,KAAK,OAAO,CAAC,4BAA4B;gBACvC,OAAO,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,SAAS,CAAC,KAAc;QAC9B,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"use_smile_id_repository_impl.js","sourceRoot":"","sources":["../../../src/data/repository/use_smile_id_repository_impl.ts"],"names":[],"mappings":"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"}