@smileid/usesmileid 12.0.1 → 12.1.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.
- package/CHANGELOG.md +11 -0
- package/README.md +66 -40
- package/dist/camera/camera_configuration.d.ts +0 -1
- package/dist/camera/camera_configuration.js +1 -2
- package/dist/camera/camera_defaults.d.ts +3 -2
- package/dist/camera/camera_defaults.js +1 -24
- package/dist/camera/camera_lens.d.ts +1 -5
- package/dist/camera/camera_lens.js +1 -12
- package/dist/camera/camera_permissions.d.ts +2 -7
- package/dist/camera/camera_permissions.js +1 -23
- package/dist/camera/document_image_pipeline.d.ts +0 -1
- package/dist/camera/document_image_pipeline.js +1 -70
- package/dist/camera/document_resize_target.d.ts +0 -1
- package/dist/camera/document_resize_target.js +1 -17
- package/dist/camera/focus_state.d.ts +0 -1
- package/dist/camera/focus_state.js +1 -13
- package/dist/camera/kamera_config_factory.d.ts +8 -0
- package/dist/camera/kamera_config_factory.js +1 -0
- package/dist/camera/kamera_error_mapping.d.ts +11 -0
- package/dist/camera/kamera_error_mapping.js +1 -0
- package/dist/camera/use_kamera_camera_permission.d.ts +8 -0
- package/dist/camera/use_kamera_camera_permission.js +1 -0
- package/dist/camera/use_kamera_orientation.d.ts +9 -0
- package/dist/camera/use_kamera_orientation.js +1 -0
- package/dist/camera/use_smile_id_frame_stream.d.ts +0 -1
- package/dist/camera/use_smile_id_frame_stream.js +1 -93
- package/dist/camera/use_smile_id_kamera_camera_system.d.ts +64 -0
- package/dist/camera/use_smile_id_kamera_camera_system.js +1 -0
- package/dist/camera/use_smile_id_kamera_preview.d.ts +12 -0
- package/dist/camera/use_smile_id_kamera_preview.js +1 -0
- package/dist/core/exception/agent_mode_with_enhanced_liveness_exception.d.ts +0 -1
- package/dist/core/exception/agent_mode_with_enhanced_liveness_exception.js +1 -17
- package/dist/core/exception/builder_validation_exception.d.ts +0 -1
- package/dist/core/exception/builder_validation_exception.js +1 -37
- package/dist/core/exception/capture_validation_exceptions.d.ts +0 -1
- package/dist/core/exception/capture_validation_exceptions.js +1 -10
- package/dist/core/exception/consent_validation_exceptions.d.ts +0 -1
- package/dist/core/exception/consent_validation_exceptions.js +1 -8
- package/dist/core/exception/duplicate_screen_type_exception.d.ts +0 -1
- package/dist/core/exception/duplicate_screen_type_exception.js +1 -20
- package/dist/core/exception/empty_screens_block_exception.d.ts +0 -1
- package/dist/core/exception/empty_screens_block_exception.js +1 -17
- package/dist/core/exception/flow_exceptions.d.ts +4 -3
- package/dist/core/exception/flow_exceptions.js +1 -37
- package/dist/core/exception/index.d.ts +3 -2
- package/dist/core/exception/index.js +1 -54
- package/dist/core/exception/invalid_consent_config_exception.d.ts +0 -1
- package/dist/core/exception/invalid_consent_config_exception.js +1 -18
- package/dist/core/exception/invalid_consent_information_exception.d.ts +0 -1
- package/dist/core/exception/invalid_consent_information_exception.js +1 -19
- package/dist/core/exception/invalid_document_capture_config_exception.d.ts +0 -1
- package/dist/core/exception/invalid_document_capture_config_exception.js +1 -20
- package/dist/core/exception/invalid_field_value_exception.d.ts +0 -1
- package/dist/core/exception/invalid_field_value_exception.js +1 -20
- package/dist/core/exception/invalid_job_type_screen_config_exception.d.ts +1 -1
- package/dist/core/exception/invalid_job_type_screen_config_exception.js +1 -61
- package/dist/core/exception/invalid_missing_capture_type_exception.d.ts +0 -1
- package/dist/core/exception/invalid_missing_capture_type_exception.js +1 -17
- package/dist/core/exception/invalid_screen_order_exception.d.ts +0 -1
- package/dist/core/exception/invalid_screen_order_exception.js +1 -22
- package/dist/core/exception/invalid_selfie_capture_config_exception.d.ts +0 -1
- package/dist/core/exception/invalid_selfie_capture_config_exception.js +1 -20
- package/dist/core/exception/issue_severity.d.ts +0 -1
- package/dist/core/exception/issue_severity.js +1 -13
- package/dist/core/exception/job_validation_exceptions.d.ts +0 -1
- package/dist/core/exception/job_validation_exceptions.js +1 -12
- package/dist/core/exception/liveness_frame_count_exception.d.ts +0 -1
- package/dist/core/exception/liveness_frame_count_exception.js +1 -19
- package/dist/core/exception/missing_capture_for_preview_exception.d.ts +0 -1
- package/dist/core/exception/missing_capture_for_preview_exception.js +1 -22
- package/dist/core/exception/missing_job_type_exception.d.ts +1 -4
- package/dist/core/exception/missing_job_type_exception.js +1 -17
- package/dist/core/exception/missing_ml_configuration_block_exception.d.ts +0 -1
- package/dist/core/exception/missing_ml_configuration_block_exception.js +1 -19
- package/dist/core/exception/missing_network_configuration_block_exception.d.ts +0 -1
- package/dist/core/exception/missing_network_configuration_block_exception.js +1 -19
- package/dist/core/exception/missing_partner_config_exception.d.ts +4 -1
- package/dist/core/exception/missing_partner_config_exception.js +1 -35
- package/dist/core/exception/missing_required_field_exception.d.ts +0 -1
- package/dist/core/exception/missing_required_field_exception.js +1 -18
- package/dist/core/exception/screen_config_validation_exceptions.d.ts +0 -1
- package/dist/core/exception/screen_config_validation_exceptions.js +1 -11
- package/dist/core/exception/unused_job_params_exception.d.ts +16 -0
- package/dist/core/exception/unused_job_params_exception.js +1 -0
- package/dist/core/exception/use_smile_id_attestation_exception.d.ts +0 -1
- package/dist/core/exception/use_smile_id_attestation_exception.js +1 -12
- package/dist/core/exception/use_smile_id_builder_exception.d.ts +0 -1
- package/dist/core/exception/use_smile_id_builder_exception.js +1 -19
- package/dist/core/exception/use_smile_id_camera_exception.d.ts +0 -1
- package/dist/core/exception/use_smile_id_camera_exception.js +1 -13
- package/dist/core/exception/use_smile_id_camera_surface_exception.d.ts +15 -0
- package/dist/core/exception/use_smile_id_camera_surface_exception.js +1 -0
- package/dist/core/exception/use_smile_id_error_code.d.ts +8 -1
- package/dist/core/exception/use_smile_id_error_code.js +1 -71
- package/dist/core/exception/use_smile_id_exception.d.ts +0 -1
- package/dist/core/exception/use_smile_id_exception.js +1 -39
- package/dist/core/exception/use_smile_id_general_exception.d.ts +0 -1
- package/dist/core/exception/use_smile_id_general_exception.js +1 -13
- package/dist/core/exception/use_smile_id_network_exception.d.ts +0 -1
- package/dist/core/exception/use_smile_id_network_exception.js +1 -203
- package/dist/core/exception/use_smile_id_validation_exception.d.ts +0 -1
- package/dist/core/exception/use_smile_id_validation_exception.js +1 -13
- package/dist/core/models/config.d.ts +8 -1
- package/dist/core/models/config.js +1 -2
- package/dist/core/models/document_capture_mode.d.ts +0 -1
- package/dist/core/models/document_capture_mode.js +1 -47
- package/dist/core/models/document_type.d.ts +5 -1
- package/dist/core/models/document_type.js +1 -47
- package/dist/core/models/flow_step.d.ts +0 -1
- package/dist/core/models/flow_step.js +1 -16
- package/dist/core/models/global_privacy_control.d.ts +0 -1
- package/dist/core/models/global_privacy_control.js +1 -39
- package/dist/core/models/head_turn_direction.d.ts +0 -1
- package/dist/core/models/head_turn_direction.js +1 -14
- package/dist/core/models/job_type.d.ts +0 -1
- package/dist/core/models/job_type.js +1 -43
- package/dist/core/models/ml_config.d.ts +0 -1
- package/dist/core/models/ml_config.js +1 -27
- package/dist/core/models/network_config.d.ts +0 -1
- package/dist/core/models/network_config.js +1 -41
- package/dist/core/models/params.d.ts +0 -1
- package/dist/core/models/params.js +1 -5
- package/dist/core/models/result.d.ts +0 -1
- package/dist/core/models/result.js +1 -17
- package/dist/data/api/auth/token_holder.d.ts +0 -1
- package/dist/data/api/auth/token_holder.js +1 -67
- package/dist/data/api/interceptors/gzip_interceptor.d.ts +0 -1
- package/dist/data/api/interceptors/gzip_interceptor.js +1 -29
- package/dist/data/api/interceptors/logging_interceptor.d.ts +0 -1
- package/dist/data/api/interceptors/logging_interceptor.js +1 -108
- package/dist/data/api/interceptors/sensitive_headers.d.ts +0 -1
- package/dist/data/api/interceptors/sensitive_headers.js +1 -42
- package/dist/data/api/interceptors/smile_auth_interceptor.d.ts +0 -1
- package/dist/data/api/interceptors/smile_auth_interceptor.js +1 -57
- package/dist/data/api/interceptors/smile_integrity_interceptor.d.ts +0 -1
- package/dist/data/api/interceptors/smile_integrity_interceptor.js +1 -79
- package/dist/data/api/interceptors/smile_request_mac_interceptor.d.ts +0 -1
- package/dist/data/api/interceptors/smile_request_mac_interceptor.js +1 -77
- package/dist/data/api/interceptors/token_refresh_interceptor.d.ts +0 -1
- package/dist/data/api/interceptors/token_refresh_interceptor.js +1 -58
- package/dist/data/api/smile_id_api.d.ts +4 -1
- package/dist/data/api/smile_id_api.js +1 -371
- package/dist/data/compression/compressible_asset.d.ts +0 -1
- package/dist/data/compression/compressible_asset.js +1 -34
- package/dist/data/compression/payload_compression_config.d.ts +0 -1
- package/dist/data/compression/payload_compression_config.js +1 -52
- package/dist/data/compression/payload_compression_runner.d.ts +8 -1
- package/dist/data/compression/payload_compression_runner.js +1 -55
- package/dist/data/compression/payload_compressor.d.ts +0 -1
- package/dist/data/compression/payload_compressor.js +1 -126
- package/dist/data/compression/uri_compressible_asset.d.ts +0 -1
- package/dist/data/compression/uri_compressible_asset.js +1 -77
- package/dist/data/dsl/builder/cache_config_builder.d.ts +0 -1
- package/dist/data/dsl/builder/cache_config_builder.js +1 -24
- package/dist/data/dsl/builder/config_builder.d.ts +0 -1
- package/dist/data/dsl/builder/config_builder.js +1 -137
- package/dist/data/dsl/builder/interceptor_config_builder.d.ts +0 -1
- package/dist/data/dsl/builder/interceptor_config_builder.js +1 -71
- package/dist/data/dsl/builder/retry_config_builder.d.ts +0 -1
- package/dist/data/dsl/builder/retry_config_builder.js +1 -46
- package/dist/data/dsl/builder/timeout_config_builder.d.ts +0 -1
- package/dist/data/dsl/builder/timeout_config_builder.js +1 -26
- package/dist/data/dsl/use_smile_id_network_builder.d.ts +0 -1
- package/dist/data/dsl/use_smile_id_network_builder.js +1 -83
- package/dist/data/factory/networking_factory.d.ts +0 -1
- package/dist/data/factory/networking_factory.js +1 -174
- package/dist/data/model/image_dimensions.d.ts +0 -1
- package/dist/data/model/image_dimensions.js +1 -2
- package/dist/data/model/job_request.d.ts +32 -18
- package/dist/data/model/job_request.js +1 -2
- package/dist/data/model/job_submission_response.d.ts +0 -1
- package/dist/data/model/job_submission_response.js +1 -2
- package/dist/data/model/sdk_config.d.ts +0 -1
- package/dist/data/model/sdk_config.js +1 -68
- package/dist/data/model/sdk_config_capture.d.ts +0 -1
- package/dist/data/model/sdk_config_capture.js +1 -69
- package/dist/data/model/sdk_config_source.d.ts +0 -1
- package/dist/data/model/sdk_config_source.js +1 -24
- package/dist/data/model/token_payload.d.ts +77 -0
- package/dist/data/model/token_payload.js +1 -0
- package/dist/data/model/user_details_payload.d.ts +38 -0
- package/dist/data/model/user_details_payload.js +1 -0
- package/dist/data/repository/use_smile_id_repository.d.ts +2 -2
- package/dist/data/repository/use_smile_id_repository.js +1 -2
- package/dist/data/repository/use_smile_id_repository_impl.d.ts +2 -2
- package/dist/data/repository/use_smile_id_repository_impl.js +1 -149
- package/dist/data/security/request_canonicalizer.d.ts +0 -1
- package/dist/data/security/request_canonicalizer.js +1 -132
- package/dist/data/security/request_timestamp.d.ts +0 -1
- package/dist/data/security/request_timestamp.js +1 -13
- package/dist/data/security/security_policy.d.ts +0 -1
- package/dist/data/security/security_policy.js +1 -61
- package/dist/data/security/signing_crypto.d.ts +0 -1
- package/dist/data/security/signing_crypto.js +1 -145
- package/dist/data/security/smile_id_crypto_error.d.ts +0 -1
- package/dist/data/security/smile_id_crypto_error.js +1 -14
- package/dist/data/security/smile_id_crypto_manager.d.ts +0 -1
- package/dist/data/security/smile_id_crypto_manager.js +1 -40
- package/dist/data/smile_id_urls.d.ts +0 -1
- package/dist/data/smile_id_urls.js +1 -14
- package/dist/data/util/retry_util.d.ts +0 -1
- package/dist/data/util/retry_util.js +1 -74
- package/dist/data/util/use_smile_id_token_decoder.d.ts +15 -4
- package/dist/data/util/use_smile_id_token_decoder.js +1 -136
- package/dist/index.d.ts +3 -6
- package/dist/index.js +1 -142
- package/dist/l10n/strings_en.d.ts +21 -14
- package/dist/l10n/strings_en.js +2 -142
- package/dist/l10n/use_smile_id_localizations.d.ts +24 -10
- package/dist/l10n/use_smile_id_localizations.js +1 -490
- package/dist/l10n/use_smile_id_localizations_provider.d.ts +0 -1
- package/dist/l10n/use_smile_id_localizations_provider.js +1 -53
- package/dist/metadata/builder_configuration.d.ts +0 -1
- package/dist/metadata/builder_configuration.js +1 -35
- package/dist/metadata/captured_image_properties.d.ts +0 -1
- package/dist/metadata/captured_image_properties.js +1 -11
- package/dist/metadata/device_orientation_collector.d.ts +0 -1
- package/dist/metadata/device_orientation_collector.js +1 -66
- package/dist/metadata/document_image_origin.d.ts +0 -1
- package/dist/metadata/document_image_origin.js +1 -19
- package/dist/metadata/geolocation.d.ts +0 -1
- package/dist/metadata/geolocation.js +1 -40
- package/dist/metadata/metadata_configuration_mappers.d.ts +0 -1
- package/dist/metadata/metadata_configuration_mappers.js +1 -178
- package/dist/metadata/model_configuration.d.ts +0 -1
- package/dist/metadata/model_configuration.js +1 -44
- package/dist/metadata/optional_native_modules.d.ts +0 -1
- package/dist/metadata/optional_native_modules.js +1 -206
- package/dist/metadata/use_smile_id_metadata.d.ts +0 -1
- package/dist/metadata/use_smile_id_metadata.js +1 -188
- package/dist/metadata/use_smile_id_metadata_factory.d.ts +11 -1
- package/dist/metadata/use_smile_id_metadata_factory.js +1 -501
- package/dist/presentation/assets/si_document_green_book_hero_animation.json +4740 -0
- package/dist/presentation/assets/si_document_hero_animation.json +4870 -0
- package/dist/presentation/assets/si_document_hero_back_animation.json +2122 -0
- package/dist/presentation/assets/si_document_passport_hero_animation.json +14540 -0
- package/dist/presentation/assets/si_ess_all_directions_hero_animation.json +5906 -0
- package/dist/presentation/assets/si_ess_animation_all_directions.json +5906 -0
- package/dist/presentation/assets/si_selfie_hero_animation.json +1468 -0
- package/dist/presentation/assets/si_smile_to_capture_animation.json +1412 -0
- package/dist/presentation/assets/svg/document_shimmer_strings.d.ts +0 -1
- package/dist/presentation/assets/svg/document_shimmer_strings.js +1 -14
- package/dist/presentation/assets/svg/instruction_svg_strings.d.ts +0 -1
- package/dist/presentation/assets/svg/instruction_svg_strings.js +1 -32
- package/dist/presentation/assets/svg/svg_strings.d.ts +0 -1
- package/dist/presentation/assets/svg/svg_strings.js +15 -46
- package/dist/presentation/components/face_oval_defaults.d.ts +0 -1
- package/dist/presentation/components/face_oval_defaults.js +1 -41
- package/dist/presentation/components/helpers/animated_lottie_view.d.ts +0 -1
- package/dist/presentation/components/helpers/animated_lottie_view.js +1 -9
- package/dist/presentation/components/helpers/capture_instruction_animation_spec.d.ts +2 -1
- package/dist/presentation/components/helpers/capture_instruction_animation_spec.js +1 -47
- package/dist/presentation/components/helpers/captured_document_image_fit.d.ts +6 -0
- package/dist/presentation/components/helpers/captured_document_image_fit.js +1 -0
- package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.d.ts +0 -1
- package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.js +1 -44
- package/dist/presentation/components/helpers/scaled_oval_geometry.d.ts +0 -1
- package/dist/presentation/components/helpers/scaled_oval_geometry.js +1 -29
- package/dist/presentation/components/icons/index.d.ts +0 -1
- package/dist/presentation/components/icons/index.js +1 -117
- package/dist/presentation/components/status_indicator_state.d.ts +0 -1
- package/dist/presentation/components/status_indicator_state.js +1 -19
- package/dist/presentation/components/use_smile_id_attribution.d.ts +2 -1
- package/dist/presentation/components/use_smile_id_attribution.js +1 -25
- package/dist/presentation/components/use_smile_id_back_button.d.ts +2 -1
- package/dist/presentation/components/use_smile_id_back_button.js +1 -38
- package/dist/presentation/components/use_smile_id_button.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_button.js +1 -63
- package/dist/presentation/components/use_smile_id_capture_content.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_capture_content.js +1 -137
- package/dist/presentation/components/use_smile_id_capture_instruction_animation.d.ts +3 -4
- package/dist/presentation/components/use_smile_id_capture_instruction_animation.js +1 -50
- package/dist/presentation/components/use_smile_id_capture_spinner.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_capture_spinner.js +1 -30
- package/dist/presentation/components/use_smile_id_captured_document_image.d.ts +4 -5
- package/dist/presentation/components/use_smile_id_captured_document_image.js +1 -39
- package/dist/presentation/components/use_smile_id_captured_image_oval.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_captured_image_oval.js +1 -63
- package/dist/presentation/components/use_smile_id_card_surface.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_card_surface.js +1 -37
- package/dist/presentation/components/use_smile_id_confirmation_buttons.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_confirmation_buttons.js +1 -48
- package/dist/presentation/components/use_smile_id_consent_row.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_consent_row.js +1 -32
- package/dist/presentation/components/use_smile_id_content_card.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_content_card.js +1 -41
- package/dist/presentation/components/use_smile_id_document_capture_controls.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_document_capture_controls.js +1 -120
- package/dist/presentation/components/use_smile_id_document_overlay.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_document_overlay.js +1 -158
- package/dist/presentation/components/use_smile_id_document_shimmer.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_document_shimmer.js +1 -23
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.js +1 -77
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_direction_animation.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_direction_animation.js +1 -21
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_full_animation.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_full_animation.js +1 -14
- package/dist/presentation/components/use_smile_id_expandable_icon.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_expandable_icon.js +1 -55
- package/dist/presentation/components/use_smile_id_face_oval_image.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_face_oval_image.js +1 -41
- package/dist/presentation/components/use_smile_id_face_overlay.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_face_overlay.js +1 -194
- package/dist/presentation/components/use_smile_id_failed_content.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_failed_content.js +1 -44
- package/dist/presentation/components/use_smile_id_guideline_thumbnail.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_guideline_thumbnail.js +1 -179
- package/dist/presentation/components/use_smile_id_instructions_hero.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_instructions_hero.js +1 -164
- package/dist/presentation/components/use_smile_id_learn_more_content.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_learn_more_content.js +1 -70
- package/dist/presentation/components/use_smile_id_loading_content.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_loading_content.js +1 -31
- package/dist/presentation/components/use_smile_id_loading_indicator.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_loading_indicator.js +1 -48
- package/dist/presentation/components/use_smile_id_oval_border_palette.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_oval_border_palette.js +1 -49
- package/dist/presentation/components/use_smile_id_partner_icon.d.ts +3 -1
- package/dist/presentation/components/use_smile_id_partner_icon.js +1 -34
- package/dist/presentation/components/use_smile_id_processing_center_indicator.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_processing_center_indicator.js +1 -44
- package/dist/presentation/components/use_smile_id_rounded_checkbox.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_rounded_checkbox.js +1 -41
- package/dist/presentation/components/use_smile_id_status_indicator.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_status_indicator.js +1 -22
- package/dist/presentation/components/use_smile_id_success_content.d.ts +0 -1
- package/dist/presentation/components/use_smile_id_success_content.js +1 -39
- package/dist/presentation/flow/analytics/use_smile_id_analytics_event.d.ts +0 -1
- package/dist/presentation/flow/analytics/use_smile_id_analytics_event.js +1 -71
- package/dist/presentation/flow/config/attribution_resolver.d.ts +17 -0
- package/dist/presentation/flow/config/attribution_resolver.js +1 -0
- package/dist/presentation/flow/config/flow_configuration.d.ts +0 -1
- package/dist/presentation/flow/config/flow_configuration.js +1 -2
- package/dist/presentation/flow/dsl/builder/config_builder.d.ts +5 -1
- package/dist/presentation/flow/dsl/builder/config_builder.js +1 -50
- package/dist/presentation/flow/dsl/builder/ml_builder.d.ts +0 -1
- package/dist/presentation/flow/dsl/builder/ml_builder.js +1 -164
- package/dist/presentation/flow/dsl/builder/screens_builder.d.ts +3 -27
- package/dist/presentation/flow/dsl/builder/screens_builder.js +1 -217
- package/dist/presentation/flow/dsl/builder/theme_builder.d.ts +0 -1
- package/dist/presentation/flow/dsl/builder/theme_builder.js +1 -83
- package/dist/presentation/flow/dsl/flow_build_result.d.ts +0 -1
- package/dist/presentation/flow/dsl/flow_build_result.js +1 -2
- package/dist/presentation/flow/dsl/use_smile_id_builder.d.ts +0 -1
- package/dist/presentation/flow/dsl/use_smile_id_builder.js +1 -49
- package/dist/presentation/flow/dsl/use_smile_id_flow_builder.d.ts +0 -1
- package/dist/presentation/flow/dsl/use_smile_id_flow_builder.js +1 -334
- package/dist/presentation/flow/flow_navigation_context.d.ts +0 -1
- package/dist/presentation/flow/flow_navigation_context.js +1 -34
- package/dist/presentation/flow/flow_navigation_manager.d.ts +19 -3
- package/dist/presentation/flow/flow_navigation_manager.js +1 -903
- package/dist/presentation/flow/graph/screen_renderer.d.ts +0 -1
- package/dist/presentation/flow/graph/screen_renderer.js +1 -31
- package/dist/presentation/flow/graph/screen_transition.d.ts +8 -0
- package/dist/presentation/flow/graph/screen_transition.js +1 -0
- package/dist/presentation/flow/job_submission_state.d.ts +0 -1
- package/dist/presentation/flow/job_submission_state.js +1 -2
- package/dist/presentation/flow/model/instruction_guideline.d.ts +0 -1
- package/dist/presentation/flow/model/instruction_guideline.js +1 -2
- package/dist/presentation/flow/model/instructions_defaults.d.ts +0 -1
- package/dist/presentation/flow/model/instructions_defaults.js +1 -130
- package/dist/presentation/flow/screen/helpers/analyzer_lifecycle.d.ts +18 -0
- package/dist/presentation/flow/screen/helpers/analyzer_lifecycle.js +1 -0
- package/dist/presentation/flow/screen/helpers/face_session_config.d.ts +0 -1
- package/dist/presentation/flow/screen/helpers/face_session_config.js +1 -65
- package/dist/presentation/flow/screen/helpers/failure_message.d.ts +3 -0
- package/dist/presentation/flow/screen/helpers/failure_message.js +1 -0
- package/dist/presentation/flow/screen/orchestrated_capture_screen.d.ts +0 -1
- package/dist/presentation/flow/screen/orchestrated_capture_screen.js +1 -237
- package/dist/presentation/flow/screen/orchestrated_consent_screen.d.ts +0 -1
- package/dist/presentation/flow/screen/orchestrated_consent_screen.js +1 -49
- package/dist/presentation/flow/screen/orchestrated_instructions_screen.d.ts +0 -1
- package/dist/presentation/flow/screen/orchestrated_instructions_screen.js +1 -47
- package/dist/presentation/flow/screen/orchestrated_preview_screen.d.ts +0 -1
- package/dist/presentation/flow/screen/orchestrated_preview_screen.js +1 -34
- package/dist/presentation/flow/screen/orchestrated_processing_screen.d.ts +0 -1
- package/dist/presentation/flow/screen/orchestrated_processing_screen.js +1 -59
- package/dist/presentation/flow/screen/use_smile_id_orchestrated_screen_host.d.ts +0 -1
- package/dist/presentation/flow/screen/use_smile_id_orchestrated_screen_host.js +1 -22
- package/dist/presentation/flow/screen/validation_error_screen.d.ts +0 -1
- package/dist/presentation/flow/screen/validation_error_screen.js +1 -87
- package/dist/presentation/flow/use_smile_id_flow.d.ts +1 -2
- package/dist/presentation/flow/use_smile_id_flow.js +1 -270
- package/dist/presentation/flow/validation/flow_validator.d.ts +18 -15
- package/dist/presentation/flow/validation/flow_validator.js +1 -308
- package/dist/presentation/flow/validation/job_type_validator.d.ts +10 -1
- package/dist/presentation/flow/validation/job_type_validator.js +1 -434
- package/dist/presentation/flow/validation/user_details_validator.d.ts +8 -0
- package/dist/presentation/flow/validation/user_details_validator.js +1 -0
- package/dist/presentation/flow/validation/validation_state.d.ts +3 -4
- package/dist/presentation/flow/validation/validation_state.js +1 -23
- package/dist/presentation/screen/helpers/capture_screen_helpers.d.ts +0 -1
- package/dist/presentation/screen/helpers/capture_screen_helpers.js +1 -134
- package/dist/presentation/screen/helpers/capture_ui_state.d.ts +0 -1
- package/dist/presentation/screen/helpers/capture_ui_state.js +1 -179
- package/dist/presentation/screen/helpers/consent_screen_helpers.d.ts +0 -1
- package/dist/presentation/screen/helpers/consent_screen_helpers.js +1 -68
- package/dist/presentation/screen/helpers/ess_turn_haptics.d.ts +0 -1
- package/dist/presentation/screen/helpers/ess_turn_haptics.js +1 -53
- package/dist/presentation/screen/helpers/feedback_debouncer.d.ts +0 -1
- package/dist/presentation/screen/helpers/feedback_debouncer.js +1 -77
- package/dist/presentation/screen/helpers/instructions_screen_helpers.d.ts +0 -3
- package/dist/presentation/screen/helpers/instructions_screen_helpers.js +1 -54
- package/dist/presentation/screen/helpers/preview_screen_helpers.d.ts +0 -1
- package/dist/presentation/screen/helpers/preview_screen_helpers.js +1 -27
- package/dist/presentation/screen/helpers/processing_screen_helpers.d.ts +0 -1
- package/dist/presentation/screen/helpers/processing_screen_helpers.js +1 -12
- package/dist/presentation/screen/helpers/scan_state_to_overlay_state.d.ts +7 -1
- package/dist/presentation/screen/helpers/scan_state_to_overlay_state.js +1 -107
- package/dist/presentation/screen/helpers/use_capture_orientation_lock.d.ts +0 -1
- package/dist/presentation/screen/helpers/use_capture_orientation_lock.js +1 -79
- package/dist/presentation/screen/helpers/use_debounced_feedback_key.d.ts +0 -1
- package/dist/presentation/screen/helpers/use_debounced_feedback_key.js +1 -44
- package/dist/presentation/screen/use_smile_id_capture_screen.d.ts +8 -11
- package/dist/presentation/screen/use_smile_id_capture_screen.js +1 -594
- package/dist/presentation/screen/use_smile_id_consent_screen.d.ts +0 -1
- package/dist/presentation/screen/use_smile_id_consent_screen.js +1 -176
- package/dist/presentation/screen/use_smile_id_document_back_instructions.d.ts +6 -1
- package/dist/presentation/screen/use_smile_id_document_back_instructions.js +1 -43
- package/dist/presentation/screen/use_smile_id_document_preview_screen.d.ts +0 -1
- package/dist/presentation/screen/use_smile_id_document_preview_screen.js +1 -69
- package/dist/presentation/screen/use_smile_id_instructions_screen.d.ts +0 -1
- package/dist/presentation/screen/use_smile_id_instructions_screen.js +2 -66
- package/dist/presentation/screen/use_smile_id_permission_screen.d.ts +0 -1
- package/dist/presentation/screen/use_smile_id_permission_screen.js +1 -28
- package/dist/presentation/screen/use_smile_id_preview_screen.d.ts +0 -1
- package/dist/presentation/screen/use_smile_id_preview_screen.js +1 -71
- package/dist/presentation/screen/use_smile_id_processing_screen.d.ts +0 -1
- package/dist/presentation/screen/use_smile_id_processing_screen.js +1 -85
- package/dist/presentation/state/processing_state.d.ts +0 -1
- package/dist/presentation/state/processing_state.js +1 -2
- package/dist/presentation/state/use_smile_id_overlay_state.d.ts +1 -3
- package/dist/presentation/state/use_smile_id_overlay_state.js +1 -56
- package/dist/presentation/theme/theme.d.ts +0 -1
- package/dist/presentation/theme/theme.js +1 -226
- package/dist/presentation/theme/theme_context.d.ts +0 -1
- package/dist/presentation/theme/theme_context.js +1 -31
- package/dist/presentation/theme/use_smile_id_motion.d.ts +0 -1
- package/dist/presentation/theme/use_smile_id_motion.js +1 -13
- package/dist/presentation/theme/use_use_smile_id_fonts.d.ts +0 -1
- package/dist/presentation/theme/use_use_smile_id_fonts.js +1 -64
- package/dist/presentation/utils/force_max_brightness.d.ts +0 -1
- package/dist/presentation/utils/force_max_brightness.js +1 -105
- package/dist/presentation/utils/locale_utils.d.ts +0 -1
- package/dist/presentation/utils/locale_utils.js +1 -74
- package/dist/presentation/utils/use_reduced_motion.d.ts +0 -1
- package/dist/presentation/utils/use_reduced_motion.js +1 -24
- package/dist/testing/fake_face_analyzer.d.ts +6 -1
- package/dist/testing/fake_face_analyzer.js +1 -52
- package/dist/testing/index.d.ts +0 -1
- package/dist/testing/index.js +1 -7
- package/dist/testing/scenario_expectations.d.ts +0 -1
- package/dist/testing/scenario_expectations.js +1 -65
- package/dist/testing/scenario_loader.d.ts +0 -1
- package/dist/testing/scenario_loader.js +1 -64
- package/dist/testing/scripted_scan_results.d.ts +3 -2
- package/dist/testing/scripted_scan_results.js +1 -52
- package/package.json +28 -30
- package/dist/camera/camera_configuration.d.ts.map +0 -1
- package/dist/camera/camera_configuration.js.map +0 -1
- package/dist/camera/camera_defaults.d.ts.map +0 -1
- package/dist/camera/camera_defaults.js.map +0 -1
- package/dist/camera/camera_lens.d.ts.map +0 -1
- package/dist/camera/camera_lens.js.map +0 -1
- package/dist/camera/camera_permissions.d.ts.map +0 -1
- package/dist/camera/camera_permissions.js.map +0 -1
- package/dist/camera/camera_preview_image.d.ts +0 -18
- package/dist/camera/camera_preview_image.d.ts.map +0 -1
- package/dist/camera/camera_preview_image.js +0 -8
- package/dist/camera/camera_preview_image.js.map +0 -1
- package/dist/camera/document_image_pipeline.d.ts.map +0 -1
- package/dist/camera/document_image_pipeline.js.map +0 -1
- package/dist/camera/document_resize_target.d.ts.map +0 -1
- package/dist/camera/document_resize_target.js.map +0 -1
- package/dist/camera/focus_state.d.ts.map +0 -1
- package/dist/camera/focus_state.js.map +0 -1
- package/dist/camera/orientation_degrees.d.ts +0 -10
- package/dist/camera/orientation_degrees.d.ts.map +0 -1
- package/dist/camera/orientation_degrees.js +0 -20
- package/dist/camera/orientation_degrees.js.map +0 -1
- package/dist/camera/use_smile_id_camera_preview.d.ts +0 -64
- package/dist/camera/use_smile_id_camera_preview.d.ts.map +0 -1
- package/dist/camera/use_smile_id_camera_preview.js +0 -141
- package/dist/camera/use_smile_id_camera_preview.js.map +0 -1
- package/dist/camera/use_smile_id_camera_system.d.ts +0 -97
- package/dist/camera/use_smile_id_camera_system.d.ts.map +0 -1
- package/dist/camera/use_smile_id_camera_system.js +0 -185
- package/dist/camera/use_smile_id_camera_system.js.map +0 -1
- package/dist/camera/use_smile_id_frame_stream.d.ts.map +0 -1
- package/dist/camera/use_smile_id_frame_stream.js.map +0 -1
- package/dist/core/exception/agent_mode_with_enhanced_liveness_exception.d.ts.map +0 -1
- package/dist/core/exception/agent_mode_with_enhanced_liveness_exception.js.map +0 -1
- package/dist/core/exception/builder_validation_exception.d.ts.map +0 -1
- package/dist/core/exception/builder_validation_exception.js.map +0 -1
- package/dist/core/exception/capture_validation_exceptions.d.ts.map +0 -1
- package/dist/core/exception/capture_validation_exceptions.js.map +0 -1
- package/dist/core/exception/consent_validation_exceptions.d.ts.map +0 -1
- package/dist/core/exception/consent_validation_exceptions.js.map +0 -1
- package/dist/core/exception/duplicate_screen_type_exception.d.ts.map +0 -1
- package/dist/core/exception/duplicate_screen_type_exception.js.map +0 -1
- package/dist/core/exception/empty_screens_block_exception.d.ts.map +0 -1
- package/dist/core/exception/empty_screens_block_exception.js.map +0 -1
- package/dist/core/exception/flow_exceptions.d.ts.map +0 -1
- package/dist/core/exception/flow_exceptions.js.map +0 -1
- package/dist/core/exception/index.d.ts.map +0 -1
- package/dist/core/exception/index.js.map +0 -1
- package/dist/core/exception/invalid_consent_config_exception.d.ts.map +0 -1
- package/dist/core/exception/invalid_consent_config_exception.js.map +0 -1
- package/dist/core/exception/invalid_consent_information_exception.d.ts.map +0 -1
- package/dist/core/exception/invalid_consent_information_exception.js.map +0 -1
- package/dist/core/exception/invalid_document_capture_config_exception.d.ts.map +0 -1
- package/dist/core/exception/invalid_document_capture_config_exception.js.map +0 -1
- package/dist/core/exception/invalid_field_value_exception.d.ts.map +0 -1
- package/dist/core/exception/invalid_field_value_exception.js.map +0 -1
- package/dist/core/exception/invalid_job_type_screen_config_exception.d.ts.map +0 -1
- package/dist/core/exception/invalid_job_type_screen_config_exception.js.map +0 -1
- package/dist/core/exception/invalid_missing_capture_type_exception.d.ts.map +0 -1
- package/dist/core/exception/invalid_missing_capture_type_exception.js.map +0 -1
- package/dist/core/exception/invalid_screen_order_exception.d.ts.map +0 -1
- package/dist/core/exception/invalid_screen_order_exception.js.map +0 -1
- package/dist/core/exception/invalid_selfie_capture_config_exception.d.ts.map +0 -1
- package/dist/core/exception/invalid_selfie_capture_config_exception.js.map +0 -1
- package/dist/core/exception/issue_severity.d.ts.map +0 -1
- package/dist/core/exception/issue_severity.js.map +0 -1
- package/dist/core/exception/job_validation_exceptions.d.ts.map +0 -1
- package/dist/core/exception/job_validation_exceptions.js.map +0 -1
- package/dist/core/exception/liveness_frame_count_exception.d.ts.map +0 -1
- package/dist/core/exception/liveness_frame_count_exception.js.map +0 -1
- package/dist/core/exception/missing_capture_for_preview_exception.d.ts.map +0 -1
- package/dist/core/exception/missing_capture_for_preview_exception.js.map +0 -1
- package/dist/core/exception/missing_job_type_exception.d.ts.map +0 -1
- package/dist/core/exception/missing_job_type_exception.js.map +0 -1
- package/dist/core/exception/missing_ml_configuration_block_exception.d.ts.map +0 -1
- package/dist/core/exception/missing_ml_configuration_block_exception.js.map +0 -1
- package/dist/core/exception/missing_network_configuration_block_exception.d.ts.map +0 -1
- package/dist/core/exception/missing_network_configuration_block_exception.js.map +0 -1
- package/dist/core/exception/missing_partner_config_exception.d.ts.map +0 -1
- package/dist/core/exception/missing_partner_config_exception.js.map +0 -1
- package/dist/core/exception/missing_required_field_exception.d.ts.map +0 -1
- package/dist/core/exception/missing_required_field_exception.js.map +0 -1
- package/dist/core/exception/screen_config_validation_exceptions.d.ts.map +0 -1
- package/dist/core/exception/screen_config_validation_exceptions.js.map +0 -1
- package/dist/core/exception/use_smile_id_attestation_exception.d.ts.map +0 -1
- package/dist/core/exception/use_smile_id_attestation_exception.js.map +0 -1
- package/dist/core/exception/use_smile_id_builder_exception.d.ts.map +0 -1
- package/dist/core/exception/use_smile_id_builder_exception.js.map +0 -1
- package/dist/core/exception/use_smile_id_camera_exception.d.ts.map +0 -1
- package/dist/core/exception/use_smile_id_camera_exception.js.map +0 -1
- package/dist/core/exception/use_smile_id_error_code.d.ts.map +0 -1
- package/dist/core/exception/use_smile_id_error_code.js.map +0 -1
- package/dist/core/exception/use_smile_id_exception.d.ts.map +0 -1
- package/dist/core/exception/use_smile_id_exception.js.map +0 -1
- package/dist/core/exception/use_smile_id_general_exception.d.ts.map +0 -1
- package/dist/core/exception/use_smile_id_general_exception.js.map +0 -1
- package/dist/core/exception/use_smile_id_network_exception.d.ts.map +0 -1
- package/dist/core/exception/use_smile_id_network_exception.js.map +0 -1
- package/dist/core/exception/use_smile_id_validation_exception.d.ts.map +0 -1
- package/dist/core/exception/use_smile_id_validation_exception.js.map +0 -1
- package/dist/core/models/config.d.ts.map +0 -1
- package/dist/core/models/config.js.map +0 -1
- package/dist/core/models/document_capture_mode.d.ts.map +0 -1
- package/dist/core/models/document_capture_mode.js.map +0 -1
- package/dist/core/models/document_type.d.ts.map +0 -1
- package/dist/core/models/document_type.js.map +0 -1
- package/dist/core/models/flow_step.d.ts.map +0 -1
- package/dist/core/models/flow_step.js.map +0 -1
- package/dist/core/models/global_privacy_control.d.ts.map +0 -1
- package/dist/core/models/global_privacy_control.js.map +0 -1
- package/dist/core/models/head_turn_direction.d.ts.map +0 -1
- package/dist/core/models/head_turn_direction.js.map +0 -1
- package/dist/core/models/job_type.d.ts.map +0 -1
- package/dist/core/models/job_type.js.map +0 -1
- package/dist/core/models/ml_config.d.ts.map +0 -1
- package/dist/core/models/ml_config.js.map +0 -1
- package/dist/core/models/network_config.d.ts.map +0 -1
- package/dist/core/models/network_config.js.map +0 -1
- package/dist/core/models/params.d.ts.map +0 -1
- package/dist/core/models/params.js.map +0 -1
- package/dist/core/models/result.d.ts.map +0 -1
- package/dist/core/models/result.js.map +0 -1
- package/dist/data/api/auth/token_holder.d.ts.map +0 -1
- package/dist/data/api/auth/token_holder.js.map +0 -1
- package/dist/data/api/interceptors/gzip_interceptor.d.ts.map +0 -1
- package/dist/data/api/interceptors/gzip_interceptor.js.map +0 -1
- package/dist/data/api/interceptors/logging_interceptor.d.ts.map +0 -1
- package/dist/data/api/interceptors/logging_interceptor.js.map +0 -1
- package/dist/data/api/interceptors/sensitive_headers.d.ts.map +0 -1
- package/dist/data/api/interceptors/sensitive_headers.js.map +0 -1
- package/dist/data/api/interceptors/smile_auth_interceptor.d.ts.map +0 -1
- package/dist/data/api/interceptors/smile_auth_interceptor.js.map +0 -1
- package/dist/data/api/interceptors/smile_integrity_interceptor.d.ts.map +0 -1
- package/dist/data/api/interceptors/smile_integrity_interceptor.js.map +0 -1
- package/dist/data/api/interceptors/smile_request_mac_interceptor.d.ts.map +0 -1
- package/dist/data/api/interceptors/smile_request_mac_interceptor.js.map +0 -1
- package/dist/data/api/interceptors/token_refresh_interceptor.d.ts.map +0 -1
- package/dist/data/api/interceptors/token_refresh_interceptor.js.map +0 -1
- package/dist/data/api/smile_id_api.d.ts.map +0 -1
- package/dist/data/api/smile_id_api.js.map +0 -1
- package/dist/data/compression/compressible_asset.d.ts.map +0 -1
- package/dist/data/compression/compressible_asset.js.map +0 -1
- package/dist/data/compression/payload_compression_config.d.ts.map +0 -1
- package/dist/data/compression/payload_compression_config.js.map +0 -1
- package/dist/data/compression/payload_compression_runner.d.ts.map +0 -1
- package/dist/data/compression/payload_compression_runner.js.map +0 -1
- package/dist/data/compression/payload_compressor.d.ts.map +0 -1
- package/dist/data/compression/payload_compressor.js.map +0 -1
- package/dist/data/compression/uri_compressible_asset.d.ts.map +0 -1
- package/dist/data/compression/uri_compressible_asset.js.map +0 -1
- package/dist/data/dsl/builder/cache_config_builder.d.ts.map +0 -1
- package/dist/data/dsl/builder/cache_config_builder.js.map +0 -1
- package/dist/data/dsl/builder/config_builder.d.ts.map +0 -1
- package/dist/data/dsl/builder/config_builder.js.map +0 -1
- package/dist/data/dsl/builder/interceptor_config_builder.d.ts.map +0 -1
- package/dist/data/dsl/builder/interceptor_config_builder.js.map +0 -1
- package/dist/data/dsl/builder/retry_config_builder.d.ts.map +0 -1
- package/dist/data/dsl/builder/retry_config_builder.js.map +0 -1
- package/dist/data/dsl/builder/timeout_config_builder.d.ts.map +0 -1
- package/dist/data/dsl/builder/timeout_config_builder.js.map +0 -1
- package/dist/data/dsl/use_smile_id_network_builder.d.ts.map +0 -1
- package/dist/data/dsl/use_smile_id_network_builder.js.map +0 -1
- package/dist/data/factory/networking_factory.d.ts.map +0 -1
- package/dist/data/factory/networking_factory.js.map +0 -1
- package/dist/data/model/image_dimensions.d.ts.map +0 -1
- package/dist/data/model/image_dimensions.js.map +0 -1
- package/dist/data/model/job_request.d.ts.map +0 -1
- package/dist/data/model/job_request.js.map +0 -1
- package/dist/data/model/job_submission_response.d.ts.map +0 -1
- package/dist/data/model/job_submission_response.js.map +0 -1
- package/dist/data/model/sdk_config.d.ts.map +0 -1
- package/dist/data/model/sdk_config.js.map +0 -1
- package/dist/data/model/sdk_config_capture.d.ts.map +0 -1
- package/dist/data/model/sdk_config_capture.js.map +0 -1
- package/dist/data/model/sdk_config_source.d.ts.map +0 -1
- package/dist/data/model/sdk_config_source.js.map +0 -1
- package/dist/data/repository/use_smile_id_repository.d.ts.map +0 -1
- package/dist/data/repository/use_smile_id_repository.js.map +0 -1
- package/dist/data/repository/use_smile_id_repository_impl.d.ts.map +0 -1
- package/dist/data/repository/use_smile_id_repository_impl.js.map +0 -1
- package/dist/data/security/request_canonicalizer.d.ts.map +0 -1
- package/dist/data/security/request_canonicalizer.js.map +0 -1
- package/dist/data/security/request_timestamp.d.ts.map +0 -1
- package/dist/data/security/request_timestamp.js.map +0 -1
- package/dist/data/security/security_policy.d.ts.map +0 -1
- package/dist/data/security/security_policy.js.map +0 -1
- package/dist/data/security/signing_crypto.d.ts.map +0 -1
- package/dist/data/security/signing_crypto.js.map +0 -1
- package/dist/data/security/smile_id_crypto_error.d.ts.map +0 -1
- package/dist/data/security/smile_id_crypto_error.js.map +0 -1
- package/dist/data/security/smile_id_crypto_manager.d.ts.map +0 -1
- package/dist/data/security/smile_id_crypto_manager.js.map +0 -1
- package/dist/data/smile_id_urls.d.ts.map +0 -1
- package/dist/data/smile_id_urls.js.map +0 -1
- package/dist/data/util/retry_util.d.ts.map +0 -1
- package/dist/data/util/retry_util.js.map +0 -1
- package/dist/data/util/use_smile_id_token_decoder.d.ts.map +0 -1
- package/dist/data/util/use_smile_id_token_decoder.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/l10n/strings_en.d.ts.map +0 -1
- package/dist/l10n/strings_en.js.map +0 -1
- package/dist/l10n/use_smile_id_localizations.d.ts.map +0 -1
- package/dist/l10n/use_smile_id_localizations.js.map +0 -1
- package/dist/l10n/use_smile_id_localizations_provider.d.ts.map +0 -1
- package/dist/l10n/use_smile_id_localizations_provider.js.map +0 -1
- package/dist/metadata/builder_configuration.d.ts.map +0 -1
- package/dist/metadata/builder_configuration.js.map +0 -1
- package/dist/metadata/captured_image_properties.d.ts.map +0 -1
- package/dist/metadata/captured_image_properties.js.map +0 -1
- package/dist/metadata/device_orientation_collector.d.ts.map +0 -1
- package/dist/metadata/device_orientation_collector.js.map +0 -1
- package/dist/metadata/document_image_origin.d.ts.map +0 -1
- package/dist/metadata/document_image_origin.js.map +0 -1
- package/dist/metadata/geolocation.d.ts.map +0 -1
- package/dist/metadata/geolocation.js.map +0 -1
- package/dist/metadata/metadata_configuration_mappers.d.ts.map +0 -1
- package/dist/metadata/metadata_configuration_mappers.js.map +0 -1
- package/dist/metadata/model_configuration.d.ts.map +0 -1
- package/dist/metadata/model_configuration.js.map +0 -1
- package/dist/metadata/optional_native_modules.d.ts.map +0 -1
- package/dist/metadata/optional_native_modules.js.map +0 -1
- package/dist/metadata/use_smile_id_metadata.d.ts.map +0 -1
- package/dist/metadata/use_smile_id_metadata.js.map +0 -1
- package/dist/metadata/use_smile_id_metadata_factory.d.ts.map +0 -1
- package/dist/metadata/use_smile_id_metadata_factory.js.map +0 -1
- package/dist/presentation/assets/svg/document_shimmer_strings.d.ts.map +0 -1
- package/dist/presentation/assets/svg/document_shimmer_strings.js.map +0 -1
- package/dist/presentation/assets/svg/instruction_svg_strings.d.ts.map +0 -1
- package/dist/presentation/assets/svg/instruction_svg_strings.js.map +0 -1
- package/dist/presentation/assets/svg/svg_strings.d.ts.map +0 -1
- package/dist/presentation/assets/svg/svg_strings.js.map +0 -1
- package/dist/presentation/components/face_oval_defaults.d.ts.map +0 -1
- package/dist/presentation/components/face_oval_defaults.js.map +0 -1
- package/dist/presentation/components/helpers/animated_lottie_view.d.ts.map +0 -1
- package/dist/presentation/components/helpers/animated_lottie_view.js.map +0 -1
- package/dist/presentation/components/helpers/capture_instruction_animation_spec.d.ts.map +0 -1
- package/dist/presentation/components/helpers/capture_instruction_animation_spec.js.map +0 -1
- package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.d.ts.map +0 -1
- package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.js.map +0 -1
- package/dist/presentation/components/helpers/scaled_oval_geometry.d.ts.map +0 -1
- package/dist/presentation/components/helpers/scaled_oval_geometry.js.map +0 -1
- package/dist/presentation/components/icons/index.d.ts.map +0 -1
- package/dist/presentation/components/icons/index.js.map +0 -1
- package/dist/presentation/components/status_indicator_state.d.ts.map +0 -1
- package/dist/presentation/components/status_indicator_state.js.map +0 -1
- package/dist/presentation/components/use_smile_id_attribution.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_attribution.js.map +0 -1
- package/dist/presentation/components/use_smile_id_back_button.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_back_button.js.map +0 -1
- package/dist/presentation/components/use_smile_id_button.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_button.js.map +0 -1
- package/dist/presentation/components/use_smile_id_capture_content.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_capture_content.js.map +0 -1
- package/dist/presentation/components/use_smile_id_capture_instruction_animation.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_capture_instruction_animation.js.map +0 -1
- package/dist/presentation/components/use_smile_id_capture_spinner.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_capture_spinner.js.map +0 -1
- package/dist/presentation/components/use_smile_id_captured_document_image.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_captured_document_image.js.map +0 -1
- package/dist/presentation/components/use_smile_id_captured_image_oval.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_captured_image_oval.js.map +0 -1
- package/dist/presentation/components/use_smile_id_card_surface.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_card_surface.js.map +0 -1
- package/dist/presentation/components/use_smile_id_confirmation_buttons.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_confirmation_buttons.js.map +0 -1
- package/dist/presentation/components/use_smile_id_consent_row.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_consent_row.js.map +0 -1
- package/dist/presentation/components/use_smile_id_content_card.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_content_card.js.map +0 -1
- package/dist/presentation/components/use_smile_id_document_capture_controls.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_document_capture_controls.js.map +0 -1
- package/dist/presentation/components/use_smile_id_document_overlay.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_document_overlay.js.map +0 -1
- package/dist/presentation/components/use_smile_id_document_shimmer.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_document_shimmer.js.map +0 -1
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.js.map +0 -1
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_direction_animation.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_direction_animation.js.map +0 -1
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_full_animation.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_full_animation.js.map +0 -1
- package/dist/presentation/components/use_smile_id_expandable_icon.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_expandable_icon.js.map +0 -1
- package/dist/presentation/components/use_smile_id_face_oval_image.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_face_oval_image.js.map +0 -1
- package/dist/presentation/components/use_smile_id_face_overlay.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_face_overlay.js.map +0 -1
- package/dist/presentation/components/use_smile_id_failed_content.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_failed_content.js.map +0 -1
- package/dist/presentation/components/use_smile_id_guideline_thumbnail.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_guideline_thumbnail.js.map +0 -1
- package/dist/presentation/components/use_smile_id_instructions_hero.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_instructions_hero.js.map +0 -1
- package/dist/presentation/components/use_smile_id_learn_more_content.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_learn_more_content.js.map +0 -1
- package/dist/presentation/components/use_smile_id_loading_content.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_loading_content.js.map +0 -1
- package/dist/presentation/components/use_smile_id_loading_indicator.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_loading_indicator.js.map +0 -1
- package/dist/presentation/components/use_smile_id_oval_border_palette.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_oval_border_palette.js.map +0 -1
- package/dist/presentation/components/use_smile_id_partner_icon.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_partner_icon.js.map +0 -1
- package/dist/presentation/components/use_smile_id_processing_center_indicator.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_processing_center_indicator.js.map +0 -1
- package/dist/presentation/components/use_smile_id_rounded_checkbox.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_rounded_checkbox.js.map +0 -1
- package/dist/presentation/components/use_smile_id_status_indicator.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_status_indicator.js.map +0 -1
- package/dist/presentation/components/use_smile_id_success_content.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_success_content.js.map +0 -1
- package/dist/presentation/flow/analytics/use_smile_id_analytics_event.d.ts.map +0 -1
- package/dist/presentation/flow/analytics/use_smile_id_analytics_event.js.map +0 -1
- package/dist/presentation/flow/config/flow_configuration.d.ts.map +0 -1
- package/dist/presentation/flow/config/flow_configuration.js.map +0 -1
- package/dist/presentation/flow/dsl/builder/config_builder.d.ts.map +0 -1
- package/dist/presentation/flow/dsl/builder/config_builder.js.map +0 -1
- package/dist/presentation/flow/dsl/builder/ml_builder.d.ts.map +0 -1
- package/dist/presentation/flow/dsl/builder/ml_builder.js.map +0 -1
- package/dist/presentation/flow/dsl/builder/screens_builder.d.ts.map +0 -1
- package/dist/presentation/flow/dsl/builder/screens_builder.js.map +0 -1
- package/dist/presentation/flow/dsl/builder/theme_builder.d.ts.map +0 -1
- package/dist/presentation/flow/dsl/builder/theme_builder.js.map +0 -1
- package/dist/presentation/flow/dsl/flow_build_result.d.ts.map +0 -1
- package/dist/presentation/flow/dsl/flow_build_result.js.map +0 -1
- package/dist/presentation/flow/dsl/use_smile_id_builder.d.ts.map +0 -1
- package/dist/presentation/flow/dsl/use_smile_id_builder.js.map +0 -1
- package/dist/presentation/flow/dsl/use_smile_id_flow_builder.d.ts.map +0 -1
- package/dist/presentation/flow/dsl/use_smile_id_flow_builder.js.map +0 -1
- package/dist/presentation/flow/flow_navigation_context.d.ts.map +0 -1
- package/dist/presentation/flow/flow_navigation_context.js.map +0 -1
- package/dist/presentation/flow/flow_navigation_manager.d.ts.map +0 -1
- package/dist/presentation/flow/flow_navigation_manager.js.map +0 -1
- package/dist/presentation/flow/graph/screen_renderer.d.ts.map +0 -1
- package/dist/presentation/flow/graph/screen_renderer.js.map +0 -1
- package/dist/presentation/flow/job_submission_state.d.ts.map +0 -1
- package/dist/presentation/flow/job_submission_state.js.map +0 -1
- package/dist/presentation/flow/model/instruction_guideline.d.ts.map +0 -1
- package/dist/presentation/flow/model/instruction_guideline.js.map +0 -1
- package/dist/presentation/flow/model/instructions_defaults.d.ts.map +0 -1
- package/dist/presentation/flow/model/instructions_defaults.js.map +0 -1
- package/dist/presentation/flow/screen/helpers/face_session_config.d.ts.map +0 -1
- package/dist/presentation/flow/screen/helpers/face_session_config.js.map +0 -1
- package/dist/presentation/flow/screen/orchestrated_capture_screen.d.ts.map +0 -1
- package/dist/presentation/flow/screen/orchestrated_capture_screen.js.map +0 -1
- package/dist/presentation/flow/screen/orchestrated_consent_screen.d.ts.map +0 -1
- package/dist/presentation/flow/screen/orchestrated_consent_screen.js.map +0 -1
- package/dist/presentation/flow/screen/orchestrated_instructions_screen.d.ts.map +0 -1
- package/dist/presentation/flow/screen/orchestrated_instructions_screen.js.map +0 -1
- package/dist/presentation/flow/screen/orchestrated_preview_screen.d.ts.map +0 -1
- package/dist/presentation/flow/screen/orchestrated_preview_screen.js.map +0 -1
- package/dist/presentation/flow/screen/orchestrated_processing_screen.d.ts.map +0 -1
- package/dist/presentation/flow/screen/orchestrated_processing_screen.js.map +0 -1
- package/dist/presentation/flow/screen/use_smile_id_orchestrated_screen_host.d.ts.map +0 -1
- package/dist/presentation/flow/screen/use_smile_id_orchestrated_screen_host.js.map +0 -1
- package/dist/presentation/flow/screen/validation_error_screen.d.ts.map +0 -1
- package/dist/presentation/flow/screen/validation_error_screen.js.map +0 -1
- package/dist/presentation/flow/use_smile_id_flow.d.ts.map +0 -1
- package/dist/presentation/flow/use_smile_id_flow.js.map +0 -1
- package/dist/presentation/flow/validation/flow_validator.d.ts.map +0 -1
- package/dist/presentation/flow/validation/flow_validator.js.map +0 -1
- package/dist/presentation/flow/validation/job_type_validator.d.ts.map +0 -1
- package/dist/presentation/flow/validation/job_type_validator.js.map +0 -1
- package/dist/presentation/flow/validation/validation_state.d.ts.map +0 -1
- package/dist/presentation/flow/validation/validation_state.js.map +0 -1
- package/dist/presentation/screen/helpers/capture_screen_helpers.d.ts.map +0 -1
- package/dist/presentation/screen/helpers/capture_screen_helpers.js.map +0 -1
- package/dist/presentation/screen/helpers/capture_ui_state.d.ts.map +0 -1
- package/dist/presentation/screen/helpers/capture_ui_state.js.map +0 -1
- package/dist/presentation/screen/helpers/consent_screen_helpers.d.ts.map +0 -1
- package/dist/presentation/screen/helpers/consent_screen_helpers.js.map +0 -1
- package/dist/presentation/screen/helpers/ess_turn_haptics.d.ts.map +0 -1
- package/dist/presentation/screen/helpers/ess_turn_haptics.js.map +0 -1
- package/dist/presentation/screen/helpers/feedback_debouncer.d.ts.map +0 -1
- package/dist/presentation/screen/helpers/feedback_debouncer.js.map +0 -1
- package/dist/presentation/screen/helpers/instructions_screen_helpers.d.ts.map +0 -1
- package/dist/presentation/screen/helpers/instructions_screen_helpers.js.map +0 -1
- package/dist/presentation/screen/helpers/preview_screen_helpers.d.ts.map +0 -1
- package/dist/presentation/screen/helpers/preview_screen_helpers.js.map +0 -1
- package/dist/presentation/screen/helpers/processing_screen_helpers.d.ts.map +0 -1
- package/dist/presentation/screen/helpers/processing_screen_helpers.js.map +0 -1
- package/dist/presentation/screen/helpers/scan_state_to_overlay_state.d.ts.map +0 -1
- package/dist/presentation/screen/helpers/scan_state_to_overlay_state.js.map +0 -1
- package/dist/presentation/screen/helpers/use_capture_orientation_lock.d.ts.map +0 -1
- package/dist/presentation/screen/helpers/use_capture_orientation_lock.js.map +0 -1
- package/dist/presentation/screen/helpers/use_debounced_feedback_key.d.ts.map +0 -1
- package/dist/presentation/screen/helpers/use_debounced_feedback_key.js.map +0 -1
- package/dist/presentation/screen/use_smile_id_capture_screen.d.ts.map +0 -1
- package/dist/presentation/screen/use_smile_id_capture_screen.js.map +0 -1
- package/dist/presentation/screen/use_smile_id_consent_screen.d.ts.map +0 -1
- package/dist/presentation/screen/use_smile_id_consent_screen.js.map +0 -1
- package/dist/presentation/screen/use_smile_id_document_back_instructions.d.ts.map +0 -1
- package/dist/presentation/screen/use_smile_id_document_back_instructions.js.map +0 -1
- package/dist/presentation/screen/use_smile_id_document_preview_screen.d.ts.map +0 -1
- package/dist/presentation/screen/use_smile_id_document_preview_screen.js.map +0 -1
- package/dist/presentation/screen/use_smile_id_instructions_screen.d.ts.map +0 -1
- package/dist/presentation/screen/use_smile_id_instructions_screen.js.map +0 -1
- package/dist/presentation/screen/use_smile_id_permission_screen.d.ts.map +0 -1
- package/dist/presentation/screen/use_smile_id_permission_screen.js.map +0 -1
- package/dist/presentation/screen/use_smile_id_preview_screen.d.ts.map +0 -1
- package/dist/presentation/screen/use_smile_id_preview_screen.js.map +0 -1
- package/dist/presentation/screen/use_smile_id_processing_screen.d.ts.map +0 -1
- package/dist/presentation/screen/use_smile_id_processing_screen.js.map +0 -1
- package/dist/presentation/state/processing_state.d.ts.map +0 -1
- package/dist/presentation/state/processing_state.js.map +0 -1
- package/dist/presentation/state/use_smile_id_overlay_state.d.ts.map +0 -1
- package/dist/presentation/state/use_smile_id_overlay_state.js.map +0 -1
- package/dist/presentation/theme/theme.d.ts.map +0 -1
- package/dist/presentation/theme/theme.js.map +0 -1
- package/dist/presentation/theme/theme_context.d.ts.map +0 -1
- package/dist/presentation/theme/theme_context.js.map +0 -1
- package/dist/presentation/theme/use_smile_id_motion.d.ts.map +0 -1
- package/dist/presentation/theme/use_smile_id_motion.js.map +0 -1
- package/dist/presentation/theme/use_use_smile_id_fonts.d.ts.map +0 -1
- package/dist/presentation/theme/use_use_smile_id_fonts.js.map +0 -1
- package/dist/presentation/utils/force_max_brightness.d.ts.map +0 -1
- package/dist/presentation/utils/force_max_brightness.js.map +0 -1
- package/dist/presentation/utils/locale_utils.d.ts.map +0 -1
- package/dist/presentation/utils/locale_utils.js.map +0 -1
- package/dist/presentation/utils/use_reduced_motion.d.ts.map +0 -1
- package/dist/presentation/utils/use_reduced_motion.js.map +0 -1
- package/dist/testing/fake_face_analyzer.d.ts.map +0 -1
- package/dist/testing/fake_face_analyzer.js.map +0 -1
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/testing/index.js.map +0 -1
- package/dist/testing/scenario_expectations.d.ts.map +0 -1
- package/dist/testing/scenario_expectations.js.map +0 -1
- package/dist/testing/scenario_loader.d.ts.map +0 -1
- package/dist/testing/scenario_loader.js.map +0 -1
- package/dist/testing/scripted_scan_results.d.ts.map +0 -1
- package/dist/testing/scripted_scan_results.js.map +0 -1
- package/src/__tests__/dsl.test.ts +0 -1165
- package/src/__tests__/enum_parity.test.ts +0 -84
- package/src/__tests__/react_native_mock.tsx +0 -218
- package/src/__tests__/setup_react_native.ts +0 -368
- package/src/__tests__/snapshots/__snapshots__/screens_structural.test.tsx.snap +0 -5261
- package/src/__tests__/snapshots/screens_structural.test.tsx +0 -230
- package/src/__tests__/theme.test.ts +0 -156
- package/src/camera/__tests__/camera_defaults.test.ts +0 -28
- package/src/camera/__tests__/camera_lens.test.ts +0 -18
- package/src/camera/__tests__/document_resize_target.test.ts +0 -44
- package/src/camera/__tests__/focus_state.test.ts +0 -48
- package/src/camera/__tests__/orientation_degrees.test.ts +0 -21
- package/src/camera/__tests__/use_smile_id_camera_system.test.ts +0 -103
- package/src/camera/__tests__/use_smile_id_frame_stream.test.ts +0 -227
- package/src/camera/camera_configuration.ts +0 -32
- package/src/camera/camera_defaults.ts +0 -25
- package/src/camera/camera_lens.ts +0 -13
- package/src/camera/camera_permissions.ts +0 -36
- package/src/camera/camera_preview_image.ts +0 -19
- package/src/camera/document_image_pipeline.ts +0 -101
- package/src/camera/document_resize_target.ts +0 -22
- package/src/camera/focus_state.ts +0 -26
- package/src/camera/orientation_degrees.ts +0 -21
- package/src/camera/use_smile_id_camera_preview.tsx +0 -256
- package/src/camera/use_smile_id_camera_system.ts +0 -236
- package/src/camera/use_smile_id_frame_stream.ts +0 -189
- package/src/core/exception/__tests__/builder_validation_exceptions.test.ts +0 -67
- package/src/core/exception/__tests__/network_exception_mapper.test.ts +0 -179
- package/src/core/exception/agent_mode_with_enhanced_liveness_exception.ts +0 -20
- package/src/core/exception/builder_validation_exception.ts +0 -40
- package/src/core/exception/capture_validation_exceptions.ts +0 -9
- package/src/core/exception/consent_validation_exceptions.ts +0 -7
- package/src/core/exception/duplicate_screen_type_exception.ts +0 -22
- package/src/core/exception/empty_screens_block_exception.ts +0 -19
- package/src/core/exception/flow_exceptions.test.ts +0 -39
- package/src/core/exception/flow_exceptions.ts +0 -42
- package/src/core/exception/index.ts +0 -74
- package/src/core/exception/invalid_consent_config_exception.ts +0 -20
- package/src/core/exception/invalid_consent_information_exception.ts +0 -21
- package/src/core/exception/invalid_document_capture_config_exception.ts +0 -22
- package/src/core/exception/invalid_field_value_exception.ts +0 -21
- package/src/core/exception/invalid_job_type_screen_config_exception.ts +0 -70
- package/src/core/exception/invalid_missing_capture_type_exception.ts +0 -19
- package/src/core/exception/invalid_screen_order_exception.ts +0 -28
- package/src/core/exception/invalid_selfie_capture_config_exception.ts +0 -22
- package/src/core/exception/issue_severity.ts +0 -14
- package/src/core/exception/job_validation_exceptions.ts +0 -11
- package/src/core/exception/liveness_frame_count_exception.ts +0 -21
- package/src/core/exception/missing_capture_for_preview_exception.ts +0 -24
- package/src/core/exception/missing_job_type_exception.ts +0 -20
- package/src/core/exception/missing_ml_configuration_block_exception.ts +0 -21
- package/src/core/exception/missing_network_configuration_block_exception.ts +0 -22
- package/src/core/exception/missing_partner_config_exception.ts +0 -38
- package/src/core/exception/missing_required_field_exception.ts +0 -19
- package/src/core/exception/screen_config_validation_exceptions.ts +0 -10
- package/src/core/exception/use_smile_id_attestation_exception.ts +0 -11
- package/src/core/exception/use_smile_id_builder_exception.ts +0 -18
- package/src/core/exception/use_smile_id_camera_exception.ts +0 -12
- package/src/core/exception/use_smile_id_error_code.ts +0 -84
- package/src/core/exception/use_smile_id_exception.ts +0 -52
- package/src/core/exception/use_smile_id_general_exception.ts +0 -12
- package/src/core/exception/use_smile_id_network_exception.ts +0 -279
- package/src/core/exception/use_smile_id_validation_exception.ts +0 -12
- package/src/core/models/__tests__/document_capture_mode.test.ts +0 -43
- package/src/core/models/__tests__/document_type.test.ts +0 -66
- package/src/core/models/__tests__/flow_models.test.ts +0 -26
- package/src/core/models/__tests__/job_type.test.ts +0 -48
- package/src/core/models/config.ts +0 -58
- package/src/core/models/document_capture_mode.ts +0 -73
- package/src/core/models/document_type.ts +0 -79
- package/src/core/models/flow_step.ts +0 -17
- package/src/core/models/global_privacy_control.ts +0 -45
- package/src/core/models/head_turn_direction.ts +0 -15
- package/src/core/models/job_type.ts +0 -53
- package/src/core/models/ml_config.ts +0 -47
- package/src/core/models/network_config.ts +0 -138
- package/src/core/models/params.ts +0 -98
- package/src/core/models/result.test.ts +0 -20
- package/src/core/models/result.ts +0 -33
- package/src/data/api/__tests__/smile_id_api.test.ts +0 -1197
- package/src/data/api/auth/token_holder.ts +0 -72
- package/src/data/api/interceptors/__tests__/gzip_interceptor.test.ts +0 -83
- package/src/data/api/interceptors/__tests__/logging_interceptor.test.ts +0 -252
- package/src/data/api/interceptors/__tests__/sensitive_headers.test.ts +0 -29
- package/src/data/api/interceptors/__tests__/smile_integrity_interceptor.test.ts +0 -192
- package/src/data/api/interceptors/__tests__/smile_request_mac_interceptor.test.ts +0 -156
- package/src/data/api/interceptors/__tests__/token_refresh_interceptor.test.ts +0 -173
- package/src/data/api/interceptors/gzip_interceptor.ts +0 -31
- package/src/data/api/interceptors/logging_interceptor.ts +0 -155
- package/src/data/api/interceptors/sensitive_headers.ts +0 -46
- package/src/data/api/interceptors/smile_auth_interceptor.ts +0 -73
- package/src/data/api/interceptors/smile_integrity_interceptor.ts +0 -99
- package/src/data/api/interceptors/smile_request_mac_interceptor.ts +0 -106
- package/src/data/api/interceptors/token_refresh_interceptor.ts +0 -122
- package/src/data/api/smile_id_api.ts +0 -488
- package/src/data/compression/__tests__/payload_compressor.test.ts +0 -200
- package/src/data/compression/__tests__/payload_compressor_real_jpeg.test.ts +0 -226
- package/src/data/compression/compressible_asset.ts +0 -62
- package/src/data/compression/payload_compression_config.ts +0 -53
- package/src/data/compression/payload_compression_runner.ts +0 -102
- package/src/data/compression/payload_compressor.ts +0 -164
- package/src/data/compression/uri_compressible_asset.ts +0 -85
- package/src/data/dsl/builder/__tests__/config_builders.test.ts +0 -62
- package/src/data/dsl/builder/__tests__/interceptor_config_builder.test.ts +0 -173
- package/src/data/dsl/builder/cache_config_builder.ts +0 -28
- package/src/data/dsl/builder/config_builder.ts +0 -156
- package/src/data/dsl/builder/interceptor_config_builder.ts +0 -83
- package/src/data/dsl/builder/retry_config_builder.ts +0 -57
- package/src/data/dsl/builder/timeout_config_builder.ts +0 -31
- package/src/data/dsl/use_smile_id_network_builder.ts +0 -86
- package/src/data/factory/__tests__/networking_factory_order.test.ts +0 -201
- package/src/data/factory/__tests__/retry_gzip_mac_composition.test.ts +0 -163
- package/src/data/factory/__tests__/signed_job_submission_headers.test.ts +0 -110
- package/src/data/factory/networking_factory.ts +0 -201
- package/src/data/model/__tests__/sdk_config.test.ts +0 -85
- package/src/data/model/__tests__/sdk_config_capture.test.ts +0 -140
- package/src/data/model/image_dimensions.ts +0 -15
- package/src/data/model/job_request.ts +0 -150
- package/src/data/model/job_submission_response.ts +0 -17
- package/src/data/model/sdk_config.ts +0 -74
- package/src/data/model/sdk_config_capture.ts +0 -78
- package/src/data/model/sdk_config_source.ts +0 -26
- package/src/data/repository/__tests__/network_retries.test.ts +0 -117
- package/src/data/repository/__tests__/use_smile_id_repository.test.ts +0 -118
- package/src/data/repository/use_smile_id_repository.ts +0 -19
- package/src/data/repository/use_smile_id_repository_impl.ts +0 -181
- package/src/data/security/__tests__/request_canonicalizer.test.ts +0 -132
- package/src/data/security/__tests__/security_policy.test.ts +0 -96
- package/src/data/security/__tests__/smile_id_crypto_manager.test.ts +0 -176
- package/src/data/security/request_canonicalizer.ts +0 -161
- package/src/data/security/request_timestamp.ts +0 -12
- package/src/data/security/security_policy.ts +0 -70
- package/src/data/security/signing_crypto.ts +0 -219
- package/src/data/security/smile_id_crypto_error.ts +0 -13
- package/src/data/security/smile_id_crypto_manager.ts +0 -46
- package/src/data/smile_id_urls.ts +0 -13
- package/src/data/util/__tests__/retry_util.test.ts +0 -182
- package/src/data/util/__tests__/use_smile_id_token_decoder.test.ts +0 -251
- package/src/data/util/retry_util.ts +0 -81
- package/src/data/util/use_smile_id_token_decoder.ts +0 -186
- package/src/index.ts +0 -514
- package/src/l10n/__tests__/use_smile_id_localizations.test.ts +0 -127
- package/src/l10n/strings_en.ts +0 -172
- package/src/l10n/use_smile_id_localizations.ts +0 -691
- package/src/l10n/use_smile_id_localizations_provider.tsx +0 -71
- package/src/metadata/__tests__/device_orientation_collector.test.ts +0 -15
- package/src/metadata/__tests__/metadata_configuration_mappers.test.ts +0 -254
- package/src/metadata/__tests__/metadata_configuration_objects.test.ts +0 -86
- package/src/metadata/__tests__/metadata_device_context.test.ts +0 -147
- package/src/metadata/__tests__/metadata_device_os_android.test.ts +0 -18
- package/src/metadata/__tests__/metadata_golden_fixture.json +0 -13
- package/src/metadata/__tests__/metadata_payload_golden.test.ts +0 -193
- package/src/metadata/__tests__/use_smile_id_metadata.test.ts +0 -430
- package/src/metadata/builder_configuration.ts +0 -69
- package/src/metadata/captured_image_properties.ts +0 -10
- package/src/metadata/device_orientation_collector.ts +0 -75
- package/src/metadata/document_image_origin.ts +0 -22
- package/src/metadata/geolocation.ts +0 -46
- package/src/metadata/metadata_configuration_mappers.ts +0 -248
- package/src/metadata/model_configuration.ts +0 -68
- package/src/metadata/optional_native_modules.ts +0 -274
- package/src/metadata/use_smile_id_metadata.ts +0 -305
- package/src/metadata/use_smile_id_metadata_factory.ts +0 -580
- package/src/presentation/assets/si_document_green_book_hero_animation.json +0 -1
- package/src/presentation/assets/si_document_hero_animation.json +0 -1
- package/src/presentation/assets/si_document_hero_back_animation.json +0 -1
- package/src/presentation/assets/si_document_passport_hero_animation.json +0 -1
- package/src/presentation/assets/si_ess_all_directions_hero_animation.json +0 -1
- package/src/presentation/assets/si_ess_animation_all_directions.json +0 -1
- package/src/presentation/assets/si_selfie_hero_animation.json +0 -1
- package/src/presentation/assets/si_smile_to_capture_animation.json +0 -1
- package/src/presentation/assets/svg/document_shimmer_strings.ts +0 -17
- package/src/presentation/assets/svg/instruction_svg_strings.ts +0 -54
- package/src/presentation/assets/svg/svg_strings.ts +0 -158
- package/src/presentation/components/__tests__/capture_instruction_animation_spec.test.ts +0 -49
- package/src/presentation/components/__tests__/enhanced_smart_selfie_animation_frames.test.ts +0 -89
- package/src/presentation/components/__tests__/use_smile_id_capture_content.test.tsx +0 -348
- package/src/presentation/components/__tests__/use_smile_id_confirmation_buttons.test.tsx +0 -131
- package/src/presentation/components/__tests__/use_smile_id_enhanced_smart_selfie_clip.test.tsx +0 -256
- package/src/presentation/components/__tests__/use_smile_id_enhanced_smart_selfie_direction_animation.test.tsx +0 -138
- package/src/presentation/components/__tests__/use_smile_id_face_overlay.test.tsx +0 -211
- package/src/presentation/components/__tests__/use_smile_id_guideline_thumbnail.test.tsx +0 -112
- package/src/presentation/components/__tests__/use_smile_id_instructions_hero.test.tsx +0 -150
- package/src/presentation/components/__tests__/use_smile_id_loading_indicator.test.tsx +0 -45
- package/src/presentation/components/__tests__/use_smile_id_oval_border_palette.test.ts +0 -103
- package/src/presentation/components/face_oval_defaults.ts +0 -51
- package/src/presentation/components/helpers/__tests__/scaled_oval_geometry.test.ts +0 -69
- package/src/presentation/components/helpers/animated_lottie_view.ts +0 -9
- package/src/presentation/components/helpers/capture_instruction_animation_spec.ts +0 -77
- package/src/presentation/components/helpers/enhanced_smart_selfie_animation_frames.ts +0 -64
- package/src/presentation/components/helpers/scaled_oval_geometry.ts +0 -44
- package/src/presentation/components/icons/index.tsx +0 -334
- package/src/presentation/components/status_indicator_state.ts +0 -21
- package/src/presentation/components/use_smile_id_attribution.tsx +0 -48
- package/src/presentation/components/use_smile_id_back_button.tsx +0 -59
- package/src/presentation/components/use_smile_id_button.tsx +0 -93
- package/src/presentation/components/use_smile_id_capture_content.tsx +0 -368
- package/src/presentation/components/use_smile_id_capture_instruction_animation.tsx +0 -84
- package/src/presentation/components/use_smile_id_capture_spinner.tsx +0 -63
- package/src/presentation/components/use_smile_id_captured_document_image.tsx +0 -81
- package/src/presentation/components/use_smile_id_captured_image_oval.tsx +0 -151
- package/src/presentation/components/use_smile_id_card_surface.tsx +0 -54
- package/src/presentation/components/use_smile_id_confirmation_buttons.tsx +0 -123
- package/src/presentation/components/use_smile_id_consent_row.tsx +0 -58
- package/src/presentation/components/use_smile_id_content_card.tsx +0 -65
- package/src/presentation/components/use_smile_id_document_capture_controls.tsx +0 -219
- package/src/presentation/components/use_smile_id_document_overlay.tsx +0 -335
- package/src/presentation/components/use_smile_id_document_shimmer.tsx +0 -51
- package/src/presentation/components/use_smile_id_enhanced_smart_selfie_clip.tsx +0 -155
- package/src/presentation/components/use_smile_id_enhanced_smart_selfie_direction_animation.tsx +0 -46
- package/src/presentation/components/use_smile_id_enhanced_smart_selfie_full_animation.tsx +0 -29
- package/src/presentation/components/use_smile_id_expandable_icon.tsx +0 -102
- package/src/presentation/components/use_smile_id_face_oval_image.tsx +0 -90
- package/src/presentation/components/use_smile_id_face_overlay.tsx +0 -387
- package/src/presentation/components/use_smile_id_failed_content.tsx +0 -94
- package/src/presentation/components/use_smile_id_guideline_thumbnail.tsx +0 -263
- package/src/presentation/components/use_smile_id_instructions_hero.tsx +0 -296
- package/src/presentation/components/use_smile_id_learn_more_content.tsx +0 -115
- package/src/presentation/components/use_smile_id_loading_content.tsx +0 -54
- package/src/presentation/components/use_smile_id_loading_indicator.tsx +0 -81
- package/src/presentation/components/use_smile_id_oval_border_palette.ts +0 -64
- package/src/presentation/components/use_smile_id_partner_icon.tsx +0 -56
- package/src/presentation/components/use_smile_id_processing_center_indicator.tsx +0 -77
- package/src/presentation/components/use_smile_id_rounded_checkbox.tsx +0 -67
- package/src/presentation/components/use_smile_id_status_indicator.tsx +0 -44
- package/src/presentation/components/use_smile_id_success_content.tsx +0 -76
- package/src/presentation/flow/__tests__/document_flow_navigation.test.ts +0 -484
- package/src/presentation/flow/__tests__/flow_navigation_manager.test.ts +0 -1212
- package/src/presentation/flow/analytics/__tests__/use_smile_id_analytics_event.test.ts +0 -105
- package/src/presentation/flow/analytics/use_smile_id_analytics_event.ts +0 -83
- package/src/presentation/flow/config/flow_configuration.ts +0 -12
- package/src/presentation/flow/dsl/builder/__tests__/config_builder.test.ts +0 -25
- package/src/presentation/flow/dsl/builder/__tests__/ml_builder.test.ts +0 -161
- package/src/presentation/flow/dsl/builder/__tests__/theme_builder.test.ts +0 -102
- package/src/presentation/flow/dsl/builder/config_builder.ts +0 -57
- package/src/presentation/flow/dsl/builder/ml_builder.ts +0 -210
- package/src/presentation/flow/dsl/builder/screens_builder.ts +0 -278
- package/src/presentation/flow/dsl/builder/theme_builder.ts +0 -119
- package/src/presentation/flow/dsl/flow_build_result.ts +0 -37
- package/src/presentation/flow/dsl/use_smile_id_builder.tsx +0 -125
- package/src/presentation/flow/dsl/use_smile_id_flow_builder.ts +0 -428
- package/src/presentation/flow/flow_navigation_context.tsx +0 -50
- package/src/presentation/flow/flow_navigation_manager.ts +0 -1156
- package/src/presentation/flow/graph/screen_renderer.tsx +0 -35
- package/src/presentation/flow/job_submission_state.ts +0 -17
- package/src/presentation/flow/model/instruction_guideline.ts +0 -21
- package/src/presentation/flow/model/instructions_defaults.ts +0 -198
- package/src/presentation/flow/screen/helpers/__tests__/face_session_config.test.ts +0 -115
- package/src/presentation/flow/screen/helpers/face_session_config.ts +0 -77
- package/src/presentation/flow/screen/orchestrated_capture_screen.tsx +0 -344
- package/src/presentation/flow/screen/orchestrated_consent_screen.tsx +0 -71
- package/src/presentation/flow/screen/orchestrated_instructions_screen.tsx +0 -103
- package/src/presentation/flow/screen/orchestrated_preview_screen.tsx +0 -62
- package/src/presentation/flow/screen/orchestrated_processing_screen.tsx +0 -111
- package/src/presentation/flow/screen/use_smile_id_orchestrated_screen_host.tsx +0 -39
- package/src/presentation/flow/screen/validation_error_screen.tsx +0 -147
- package/src/presentation/flow/use_smile_id_flow.tsx +0 -345
- package/src/presentation/flow/validation/__tests__/flow_validator.test.ts +0 -458
- package/src/presentation/flow/validation/__tests__/job_type_validator.test.ts +0 -768
- package/src/presentation/flow/validation/flow_validator.ts +0 -462
- package/src/presentation/flow/validation/job_type_validator.ts +0 -669
- package/src/presentation/flow/validation/validation_state.ts +0 -65
- package/src/presentation/screen/__tests__/capture_screen_helpers.test.ts +0 -112
- package/src/presentation/screen/__tests__/capture_ui_state.test.ts +0 -398
- package/src/presentation/screen/__tests__/consent_screen_helpers.test.ts +0 -63
- package/src/presentation/screen/__tests__/ess_turn_haptics.test.ts +0 -82
- package/src/presentation/screen/__tests__/feedback_debouncer.test.ts +0 -111
- package/src/presentation/screen/__tests__/instructions_screen_helpers.test.ts +0 -154
- package/src/presentation/screen/__tests__/preview_screen_helpers.test.ts +0 -53
- package/src/presentation/screen/__tests__/processing_screen_helpers.test.ts +0 -39
- package/src/presentation/screen/__tests__/scan_state_to_overlay_state.test.ts +0 -223
- package/src/presentation/screen/__tests__/use_smile_id_capture_screen.test.tsx +0 -780
- package/src/presentation/screen/__tests__/use_smile_id_consent_screen.test.tsx +0 -288
- package/src/presentation/screen/__tests__/use_smile_id_document_back_instructions.test.tsx +0 -136
- package/src/presentation/screen/__tests__/use_smile_id_instructions_screen.test.tsx +0 -245
- package/src/presentation/screen/__tests__/use_smile_id_preview_screen.test.tsx +0 -193
- package/src/presentation/screen/__tests__/use_smile_id_processing_screen.test.tsx +0 -333
- package/src/presentation/screen/helpers/__tests__/use_capture_orientation_lock.test.tsx +0 -212
- package/src/presentation/screen/helpers/capture_screen_helpers.ts +0 -152
- package/src/presentation/screen/helpers/capture_ui_state.ts +0 -298
- package/src/presentation/screen/helpers/consent_screen_helpers.ts +0 -106
- package/src/presentation/screen/helpers/ess_turn_haptics.ts +0 -67
- package/src/presentation/screen/helpers/feedback_debouncer.ts +0 -89
- package/src/presentation/screen/helpers/instructions_screen_helpers.ts +0 -113
- package/src/presentation/screen/helpers/preview_screen_helpers.ts +0 -41
- package/src/presentation/screen/helpers/processing_screen_helpers.ts +0 -27
- package/src/presentation/screen/helpers/scan_state_to_overlay_state.ts +0 -131
- package/src/presentation/screen/helpers/use_capture_orientation_lock.ts +0 -108
- package/src/presentation/screen/helpers/use_debounced_feedback_key.ts +0 -52
- package/src/presentation/screen/use_smile_id_capture_screen.tsx +0 -861
- package/src/presentation/screen/use_smile_id_consent_screen.tsx +0 -393
- package/src/presentation/screen/use_smile_id_document_back_instructions.tsx +0 -125
- package/src/presentation/screen/use_smile_id_document_preview_screen.tsx +0 -152
- package/src/presentation/screen/use_smile_id_instructions_screen.tsx +0 -198
- package/src/presentation/screen/use_smile_id_permission_screen.tsx +0 -52
- package/src/presentation/screen/use_smile_id_preview_screen.tsx +0 -127
- package/src/presentation/screen/use_smile_id_processing_screen.tsx +0 -223
- package/src/presentation/state/__tests__/use_smile_id_overlay_state.test.ts +0 -30
- package/src/presentation/state/processing_state.ts +0 -19
- package/src/presentation/state/use_smile_id_overlay_state.ts +0 -70
- package/src/presentation/theme/theme.ts +0 -401
- package/src/presentation/theme/theme_context.tsx +0 -45
- package/src/presentation/theme/use_smile_id_motion.ts +0 -12
- package/src/presentation/theme/use_use_smile_id_fonts.ts +0 -71
- package/src/presentation/utils/__tests__/force_max_brightness.test.tsx +0 -237
- package/src/presentation/utils/__tests__/locale_utils.test.ts +0 -78
- package/src/presentation/utils/force_max_brightness.tsx +0 -113
- package/src/presentation/utils/locale_utils.ts +0 -80
- package/src/presentation/utils/use_reduced_motion.ts +0 -26
- package/src/testing/__tests__/fake_face_analyzer.test.ts +0 -42
- package/src/testing/__tests__/scenario_expectations.test.ts +0 -110
- package/src/testing/__tests__/scenario_loader.test.ts +0 -64
- package/src/testing/fake_face_analyzer.ts +0 -82
- package/src/testing/index.ts +0 -15
- package/src/testing/scenario_expectations.ts +0 -87
- package/src/testing/scenario_loader.ts +0 -83
- package/src/testing/scripted_scan_results.ts +0 -66
- /package/{src → dist}/presentation/assets/fonts/DMSans-Bold.ttf +0 -0
- /package/{src → dist}/presentation/assets/fonts/DMSans-ExtraBold.ttf +0 -0
- /package/{src → dist}/presentation/assets/fonts/DMSans-Medium.ttf +0 -0
- /package/{src → dist}/presentation/assets/fonts/DMSans-Regular.ttf +0 -0
- /package/{src → dist}/presentation/assets/fonts/DMSans-SemiBold.ttf +0 -0
- /package/{src → dist}/presentation/assets/fonts/OFL.txt +0 -0
- /package/{src → dist}/presentation/assets/si_dark_lighting_animation.json +0 -0
- /package/{src → dist}/presentation/assets/si_device_orientation_animation.json +0 -0
- /package/{src → dist}/presentation/assets/svg/si_attribution.svg +0 -0
- /package/{src → dist}/presentation/assets/svg/si_attribution_dark.svg +0 -0
- /package/{src → dist}/presentation/assets/svg/si_checkbox_check.svg +0 -0
- /package/{src → dist}/presentation/assets/svg/si_consent_biometric.svg +0 -0
- /package/{src → dist}/presentation/assets/svg/si_consent_biometric_dark.svg +0 -0
- /package/{src → dist}/presentation/assets/svg/si_consent_contact.svg +0 -0
- /package/{src → dist}/presentation/assets/svg/si_consent_contact_dark.svg +0 -0
- /package/{src → dist}/presentation/assets/svg/si_consent_device.svg +0 -0
- /package/{src → dist}/presentation/assets/svg/si_consent_device_dark.svg +0 -0
- /package/{src → dist}/presentation/assets/svg/si_consent_personal.svg +0 -0
- /package/{src → dist}/presentation/assets/svg/si_consent_personal_dark.svg +0 -0
- /package/{src → dist}/presentation/assets/svg/si_expand_more.svg +0 -0
- /package/{src → dist}/presentation/assets/svg/si_plus.svg +0 -0
- /package/{src → dist}/presentation/assets/svg/si_smile_consent_icon.svg +0 -0
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export
|
|
2
|
-
//# sourceMappingURL=use_smile_id_repository.js.map
|
|
1
|
+
"use strict";export{};
|
|
@@ -3,6 +3,7 @@ import type { JobSubmissionResponse } from "../model/job_submission_response";
|
|
|
3
3
|
import type { SmileIDAPI } from "../api/smile_id_api";
|
|
4
4
|
import type { RetryConfig } from "../../core/models/network_config";
|
|
5
5
|
import type { UseSmileIDResult } from "../../core/models/result";
|
|
6
|
+
import type { SdkConfig } from "../model/sdk_config";
|
|
6
7
|
/**
|
|
7
8
|
* Concrete repository.
|
|
8
9
|
*
|
|
@@ -15,7 +16,7 @@ export declare class UseSmileIDRepositoryImpl {
|
|
|
15
16
|
private readonly _api;
|
|
16
17
|
private readonly _retry;
|
|
17
18
|
constructor(api: SmileIDAPI, retry: RetryConfig);
|
|
18
|
-
submit(request: JobRequest): Promise<UseSmileIDResult<JobSubmissionResponse>>;
|
|
19
|
+
submit(request: JobRequest, sdkConfig?: SdkConfig | undefined): Promise<UseSmileIDResult<JobSubmissionResponse>>;
|
|
19
20
|
/**
|
|
20
21
|
* Pre-flight payload compression entry — extracts the captured image URIs for the job type and
|
|
21
22
|
* compresses the bundle under the transmission cap (metadata is measured, never modified).
|
|
@@ -32,4 +33,3 @@ export declare class UseSmileIDRepositoryImpl {
|
|
|
32
33
|
*/
|
|
33
34
|
private _mapError;
|
|
34
35
|
}
|
|
35
|
-
//# sourceMappingURL=use_smile_id_repository_impl.d.ts.map
|
|
@@ -1,149 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { JobType } from "../../core/models/job_type";
|
|
3
|
-
import { withRetry } from "../util/retry_util";
|
|
4
|
-
import { InvalidFieldValueException } from "../../core/exception/job_validation_exceptions";
|
|
5
|
-
import { UseSmileIDValidationException } from "../../core/exception/use_smile_id_validation_exception";
|
|
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
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Concrete repository.
|
|
25
|
-
*
|
|
26
|
-
* Exhaustive-switch dispatch over the `JobRequest` discriminated
|
|
27
|
-
* union — adding a new variant fails to compile here until the new
|
|
28
|
-
* dispatch case lands, so partner orchestrator code never silently
|
|
29
|
-
* skips a request type.
|
|
30
|
-
*/
|
|
31
|
-
export class UseSmileIDRepositoryImpl {
|
|
32
|
-
_api;
|
|
33
|
-
_retry;
|
|
34
|
-
constructor(api, retry) {
|
|
35
|
-
this._api = api;
|
|
36
|
-
this._retry = retry;
|
|
37
|
-
}
|
|
38
|
-
async submit(request) {
|
|
39
|
-
// BVN is not yet supported. Fail fast at the repository boundary
|
|
40
|
-
// with the canonical typed exception so partner `onResult` sees a
|
|
41
|
-
// structured error rather than a wire-level failure from the
|
|
42
|
-
// server.
|
|
43
|
-
if (request.jobType === JobType.bvn) {
|
|
44
|
-
return failure(new InvalidFieldValueException({
|
|
45
|
-
fieldName: "jobType",
|
|
46
|
-
reason: "BVN submission is not yet supported",
|
|
47
|
-
}));
|
|
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
|
-
}
|
|
67
|
-
try {
|
|
68
|
-
const response = await withRetry(this._retry, (attempt) => this._dispatch(submitted, attempt));
|
|
69
|
-
return success(response);
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
// A validation failure (e.g. a liveness-count mismatch) is a
|
|
73
|
-
// pre-network constraint violation — surface the typed exception
|
|
74
|
-
// directly rather than collapsing it into the network hierarchy, so
|
|
75
|
-
// partners can catch it as the validation error it is.
|
|
76
|
-
if (error instanceof UseSmileIDValidationException) {
|
|
77
|
-
return failure(error);
|
|
78
|
-
}
|
|
79
|
-
return failure(this._mapError(error));
|
|
80
|
-
}
|
|
81
|
-
}
|
|
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;
|
|
89
|
-
switch (request.jobType) {
|
|
90
|
-
case JobType.smartSelfieEnrollment:
|
|
91
|
-
case JobType.smartSelfieAuthentication:
|
|
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);
|
|
128
|
-
case JobType.enhancedKyc:
|
|
129
|
-
return this._api.enhancedKyc(stamped);
|
|
130
|
-
case JobType.biometricKyc:
|
|
131
|
-
return this._api.biometricKyc(stamped);
|
|
132
|
-
case JobType.documentVerification:
|
|
133
|
-
return this._api.documentVerification(stamped);
|
|
134
|
-
case JobType.enhancedDocumentVerification:
|
|
135
|
-
return this._api.enhancedDocumentVerification(stamped);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Translate any caught error into the typed
|
|
140
|
-
* [UseSmileIDNetworkException] hierarchy. Delegates to the canonical
|
|
141
|
-
* [mapAxiosError] so a single mapper implementation covers both the
|
|
142
|
-
* repository layer and any future call sites (interceptors,
|
|
143
|
-
* partner-supplied error wrappers).
|
|
144
|
-
*/
|
|
145
|
-
_mapError(error) {
|
|
146
|
-
return mapAxiosError(error);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
//# sourceMappingURL=use_smile_id_repository_impl.js.map
|
|
1
|
+
"use strict";import{failure as s,success as m}from"../../core/models/result";import{JobType as a}from"../../core/models/job_type";import{withRetry as l}from"../util/retry_util";import{InvalidFieldValueException as f}from"../../core/exception/job_validation_exceptions";import{UseSmileIDValidationException as p}from"../../core/exception/use_smile_id_validation_exception";import{mapAxiosError as d}from"../../core/exception/use_smile_id_network_exception";import{PayloadCompressionRunner as c}from"../compression/payload_compression_runner";function _(r){const e=[],i=(t,n)=>{n!==void 0&&n>0&&e.push({name:t,value:String(n)})};return i("selfie_original_size",r.selfieOriginalMb),i("selfie_final_compressed_size",r.selfieFinalMb),i("document_front_original_size",r.frontOriginalMb),i("document_front_final_compressed_size",r.frontFinalMb),i("document_back_original_size",r.backOriginalMb),i("document_back_final_compressed_size",r.backFinalMb),e}export class UseSmileIDRepositoryImpl{_api;_retry;constructor(e,i){this._api=e,this._retry=i}async submit(e,i){if(e.jobType===a.bvn)return s(new f({fieldName:"jobType",reason:"BVN submission is not yet supported"}));let t=e;try{const n=await this._compressPayload(e,i),o=n?_(n):[];o.length>0&&(t={...e,metadata:e.metadata.withAdditionalEntries(o)})}catch{}try{const n=await l(this._retry,o=>this._dispatch(t,o));return m(n)}catch(n){return n instanceof p?s(n):s(this._mapError(n))}}async _compressPayload(e,i){const t=JSON.stringify(e.metadata.toEntries()).length;switch(e.jobType){case a.smartSelfieEnrollment:case a.smartSelfieAuthentication:case a.biometricKyc:return c.compress({selfieImage:e.selfieImage,livenessImages:e.livenessImages,metadataBytes:t,sdkConfig:i});case a.documentVerification:case a.enhancedDocumentVerification:return c.compress({selfieImage:e.selfieImage,livenessImages:e.livenessImages,frontDocument:e.frontDocument,backDocument:e.backDocument,metadataBytes:t,sdkConfig:i});default:return}}_dispatch(e,i){const t=i>0?{...e,metadata:e.metadata.withAdditionalEntries([{name:"network_retries",value:String(i)}])}:e;switch(t.jobType){case a.smartSelfieEnrollment:return this._api.smartSelfieEnrollment(t);case a.smartSelfieAuthentication:return this._api.smartSelfieAuthentication(t);case a.enhancedKyc:return this._api.enhancedKyc(t);case a.biometricKyc:return this._api.biometricKyc(t);case a.documentVerification:return this._api.documentVerification(t);case a.enhancedDocumentVerification:return this._api.enhancedDocumentVerification(t)}}_mapError(e){return d(e)}}
|
|
@@ -1,132 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { SmileIDCryptoError } from "./smile_id_crypto_error";
|
|
3
|
-
/**
|
|
4
|
-
* Reduces a request to the canonical bytes that get signed: the signed headers
|
|
5
|
-
* as sorted-key JSON, followed by the canonicalised body. Canonicalisation
|
|
6
|
-
* reconstructs the logical request payload the server validates against, so the
|
|
7
|
-
* client and server sign the same bytes.
|
|
8
|
-
*
|
|
9
|
-
* The body reconstruction mirrors the server's form parser + payload processor:
|
|
10
|
-
* - JSON fields (`partner_params`, `metadata`, `failure_reason`, `consent`,
|
|
11
|
-
* `user_details`) are parsed into objects.
|
|
12
|
-
* - File parts contribute the Base64 of their bytes; repeated names (e.g.
|
|
13
|
-
* `liveness_images`) collapse into a list.
|
|
14
|
-
* - Every other field contributes its string value; a top-level `"true"` /
|
|
15
|
-
* `"false"` becomes a boolean.
|
|
16
|
-
* The result is key-sorted recursively and emitted as compact JSON, then
|
|
17
|
-
* `latitude`/`longitude` and the `device_movement_detected` metadata value are
|
|
18
|
-
* coerced from string to number to match the server.
|
|
19
|
-
*/
|
|
20
|
-
const SIGNED_HEADER_PREFIX = "smileid-";
|
|
21
|
-
const REQUEST_MAC_HEADER = "smileid-request-mac";
|
|
22
|
-
const DEVICE_NONCE_HEADER = "smileid-device-nonce";
|
|
23
|
-
const JSON_FIELDS = new Set([
|
|
24
|
-
"partner_params",
|
|
25
|
-
"metadata",
|
|
26
|
-
"failure_reason",
|
|
27
|
-
"consent",
|
|
28
|
-
"user_details",
|
|
29
|
-
]);
|
|
30
|
-
const LATITUDE_LONGITUDE = /"(latitude|longitude)":"(-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)"/g;
|
|
31
|
-
const DEVICE_MOVEMENT = /("name":"device_movement_detected",.*?"value":)"(-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)"/g;
|
|
32
|
-
function isFormDataLike(body) {
|
|
33
|
-
return (typeof body === "object" &&
|
|
34
|
-
body !== null &&
|
|
35
|
-
typeof body.getParts === "function");
|
|
36
|
-
}
|
|
37
|
-
export const RequestCanonicalizer = {
|
|
38
|
-
async canonicalize(headers, body) {
|
|
39
|
-
return concat(canonicalHeaders(headers), await canonicalBody(body));
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
|
-
function canonicalHeaders(headers) {
|
|
43
|
-
const signed = {};
|
|
44
|
-
for (const [key, value] of Object.entries(headers)) {
|
|
45
|
-
const name = key.toLowerCase();
|
|
46
|
-
if (name.startsWith(SIGNED_HEADER_PREFIX) &&
|
|
47
|
-
name !== REQUEST_MAC_HEADER &&
|
|
48
|
-
name !== DEVICE_NONCE_HEADER) {
|
|
49
|
-
signed[name] = value;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return utf8Bytes(canonicalJson(signed));
|
|
53
|
-
}
|
|
54
|
-
async function canonicalBody(body) {
|
|
55
|
-
if (!isFormDataLike(body))
|
|
56
|
-
return utf8Bytes("{}");
|
|
57
|
-
const payload = {};
|
|
58
|
-
for (const part of body.getParts()) {
|
|
59
|
-
merge(payload, part.fieldName, await partValue(part));
|
|
60
|
-
}
|
|
61
|
-
return utf8Bytes(coerceNumbers(canonicalJson(payload)));
|
|
62
|
-
}
|
|
63
|
-
/** File parts (a `uri`) → Base64 of bytes; JSON fields → parsed; else string with bool coercion. */
|
|
64
|
-
async function partValue(part) {
|
|
65
|
-
if (part.uri != null) {
|
|
66
|
-
// Reading a file part can reject — e.g. the captured-image `file://` URI is
|
|
67
|
-
// unreadable, or the RN runtime rejects a local-file `fetch` when the device
|
|
68
|
-
// is offline (behaviour differs between the Expo and bare-RN runtimes).
|
|
69
|
-
// Surface it as a SmileIDCryptoError so the signing interceptor's narrow
|
|
70
|
-
// catch fails open (ships the request unsigned) instead of letting the
|
|
71
|
-
// rejection escape and crash the submission flow.
|
|
72
|
-
try {
|
|
73
|
-
const response = await fetch(part.uri);
|
|
74
|
-
return base64Encode(new Uint8Array(await response.arrayBuffer()));
|
|
75
|
-
}
|
|
76
|
-
catch (cause) {
|
|
77
|
-
throw new SmileIDCryptoError(`Failed to read request part "${part.fieldName}" for signing: ${String(cause)}`);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
const value = part.string ?? "";
|
|
81
|
-
if (JSON_FIELDS.has(part.fieldName)) {
|
|
82
|
-
try {
|
|
83
|
-
return JSON.parse(value);
|
|
84
|
-
}
|
|
85
|
-
catch {
|
|
86
|
-
return value;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
if (value === "true")
|
|
90
|
-
return true;
|
|
91
|
-
if (value === "false")
|
|
92
|
-
return false;
|
|
93
|
-
return value;
|
|
94
|
-
}
|
|
95
|
-
function merge(payload, name, value) {
|
|
96
|
-
if (!(name in payload)) {
|
|
97
|
-
payload[name] = value;
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
const existing = payload[name];
|
|
101
|
-
payload[name] = Array.isArray(existing)
|
|
102
|
-
? [...existing, value]
|
|
103
|
-
: [existing, value];
|
|
104
|
-
}
|
|
105
|
-
/** Compact JSON with recursively sorted object keys (no whitespace). */
|
|
106
|
-
function canonicalJson(value) {
|
|
107
|
-
return JSON.stringify(sortValue(value));
|
|
108
|
-
}
|
|
109
|
-
function sortValue(value) {
|
|
110
|
-
if (Array.isArray(value))
|
|
111
|
-
return value.map(sortValue);
|
|
112
|
-
if (typeof value === "object" && value !== null) {
|
|
113
|
-
const sorted = {};
|
|
114
|
-
for (const key of Object.keys(value).sort()) {
|
|
115
|
-
sorted[key] = sortValue(value[key]);
|
|
116
|
-
}
|
|
117
|
-
return sorted;
|
|
118
|
-
}
|
|
119
|
-
return value;
|
|
120
|
-
}
|
|
121
|
-
function coerceNumbers(json) {
|
|
122
|
-
return json
|
|
123
|
-
.replace(LATITUDE_LONGITUDE, '"$1":$2')
|
|
124
|
-
.replace(DEVICE_MOVEMENT, "$1$2");
|
|
125
|
-
}
|
|
126
|
-
function concat(a, b) {
|
|
127
|
-
const out = new Uint8Array(a.length + b.length);
|
|
128
|
-
out.set(a, 0);
|
|
129
|
-
out.set(b, a.length);
|
|
130
|
-
return out;
|
|
131
|
-
}
|
|
132
|
-
//# sourceMappingURL=request_canonicalizer.js.map
|
|
1
|
+
"use strict";import{base64Encode as a,utf8Bytes as o}from"./signing_crypto";import{SmileIDCryptoError as u}from"./smile_id_crypto_error";const f="smileid-",l="smileid-request-mac",E="smileid-device-nonce",d=new Set(["partner_params","metadata","failure_reason","consent","user_details"]),m=/"(latitude|longitude)":"(-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)"/g,y=/("name":"device_movement_detected",.*?"value":)"(-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)"/g;function g(t){return typeof t=="object"&&t!==null&&typeof t.getParts=="function"}export const RequestCanonicalizer={async canonicalize(t,e){return w(_(t),await N(e))}};function _(t){const e={};for(const[n,r]of Object.entries(t)){const i=n.toLowerCase();i.startsWith(f)&&i!==l&&i!==E&&(e[i]=r)}return o(c(e))}async function N(t){if(!g(t))return o("{}");const e={};for(const n of t.getParts())A(e,n.fieldName,await p(n));return o(D(c(e)))}async function p(t){if(t.uri!=null)try{const n=await fetch(t.uri);return a(new Uint8Array(await n.arrayBuffer()))}catch(n){throw new u(`Failed to read request part "${t.fieldName}" for signing: ${String(n)}`)}const e=t.string??"";if(d.has(t.fieldName))try{return JSON.parse(e)}catch{return e}return e==="true"?!0:e==="false"?!1:e}function A(t,e,n){if(!(e in t)){t[e]=n;return}const r=t[e];t[e]=Array.isArray(r)?[...r,n]:[r,n]}function c(t){return JSON.stringify(s(t))}function s(t){if(Array.isArray(t))return t.map(s);if(typeof t=="object"&&t!==null){const e={};for(const n of Object.keys(t).sort())e[n]=s(t[n]);return e}return t}function D(t){return t.replace(m,'"$1":$2').replace(y,"$1$2")}function w(t,e){const n=new Uint8Array(t.length+e.length);return n.set(t,0),n.set(e,t.length),n}
|
|
@@ -1,13 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* The request timestamp used for request signing: epoch milliseconds rendered
|
|
3
|
-
* as a string.
|
|
4
|
-
*
|
|
5
|
-
* Stamped as the `smileid-request-timestamp` header and reused as the
|
|
6
|
-
* request-MAC salt, so producing it in one place keeps the clock read and the
|
|
7
|
-
* wire format consistent between the header and the signature. The server
|
|
8
|
-
* validates the value against its accepted clock-skew window.
|
|
9
|
-
*/
|
|
10
|
-
export function currentRequestTimestamp() {
|
|
11
|
-
return Date.now().toString();
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=request_timestamp.js.map
|
|
1
|
+
"use strict";export function currentRequestTimestamp(){return Date.now().toString()}
|
|
@@ -1,61 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Server-driven security policy decoded from the integer `policy` bit-code carried as a top-level
|
|
3
|
-
* claim on the SmileID JWT — a sibling of the `sdk_config` claim, not nested inside it (see
|
|
4
|
-
* `decodeSecurityPolicyBitCode` and `docs/Policy.md`).
|
|
5
|
-
*
|
|
6
|
-
* Each bit toggles one SDK security behaviour, so the backend can dial protection up or down per
|
|
7
|
-
* session without shipping a new SDK build. The bit-code contract — which bit means what — is
|
|
8
|
-
* documented in `docs/Policy.md`, not here, so the four SDKs share one source of truth.
|
|
9
|
-
*
|
|
10
|
-
* **Fail-secure:** an absent (`undefined`) bit-code enables every behaviour, so a token that omits
|
|
11
|
-
* the claim — or a malformed token that fails to decode — runs with full protection rather than
|
|
12
|
-
* silently dropping security. This matches the value `undefined` produces in
|
|
13
|
-
* {@link SecurityPolicy.fromBitCode}.
|
|
14
|
-
*
|
|
15
|
-
* **Internal by design:** this class is not exported from the package entrypoint (`src/index.ts`),
|
|
16
|
-
* so it never becomes part of the partner-facing API; it exists only so the SDK can gate its own
|
|
17
|
-
* request signing and device attestation.
|
|
18
|
-
*/
|
|
19
|
-
export class SecurityPolicy {
|
|
20
|
-
static _BIT_PAYLOAD_SIGNING = 0;
|
|
21
|
-
static _BIT_PAYLOAD_ENCRYPTION = 1;
|
|
22
|
-
static _BIT_ROOTED_DEVICE_CHECK = 2;
|
|
23
|
-
static _BIT_PLAY_INTEGRITY_CHECK = 3;
|
|
24
|
-
// Fail-secure default for an absent bit-code: every known behaviour active.
|
|
25
|
-
static _ALL_ACTIVE = (1 << SecurityPolicy._BIT_PAYLOAD_SIGNING) |
|
|
26
|
-
(1 << SecurityPolicy._BIT_PAYLOAD_ENCRYPTION) |
|
|
27
|
-
(1 << SecurityPolicy._BIT_ROOTED_DEVICE_CHECK) |
|
|
28
|
-
(1 << SecurityPolicy._BIT_PLAY_INTEGRITY_CHECK);
|
|
29
|
-
_bitCode;
|
|
30
|
-
constructor(bitCode) {
|
|
31
|
-
this._bitCode = bitCode;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Decode a `bitCode` into a typed policy. An `undefined` code is fail-secure — every behaviour
|
|
35
|
-
* is active. For a defined code, behaviour `b` is active when bit `b` is set, least-significant
|
|
36
|
-
* bit first.
|
|
37
|
-
*/
|
|
38
|
-
static fromBitCode(bitCode) {
|
|
39
|
-
return new SecurityPolicy(bitCode ?? SecurityPolicy._ALL_ACTIVE);
|
|
40
|
-
}
|
|
41
|
-
/** True when the server enabled request-payload HMAC signing for this session. */
|
|
42
|
-
isPayloadSigningActive() {
|
|
43
|
-
return this._isSet(SecurityPolicy._BIT_PAYLOAD_SIGNING);
|
|
44
|
-
}
|
|
45
|
-
/** True when the server enabled request-payload encryption for this session. */
|
|
46
|
-
isPayloadEncryptionActive() {
|
|
47
|
-
return this._isSet(SecurityPolicy._BIT_PAYLOAD_ENCRYPTION);
|
|
48
|
-
}
|
|
49
|
-
/** True when the server enabled the rooted / jailbroken device check for this session. */
|
|
50
|
-
isRootedDeviceCheckActive() {
|
|
51
|
-
return this._isSet(SecurityPolicy._BIT_ROOTED_DEVICE_CHECK);
|
|
52
|
-
}
|
|
53
|
-
/** True when the server enabled device attestation for this session. */
|
|
54
|
-
isPlayIntegrityCheckActive() {
|
|
55
|
-
return this._isSet(SecurityPolicy._BIT_PLAY_INTEGRITY_CHECK);
|
|
56
|
-
}
|
|
57
|
-
_isSet(bit) {
|
|
58
|
-
return ((this._bitCode >> bit) & 1) === 1;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=security_policy.js.map
|
|
1
|
+
"use strict";export class SecurityPolicy{static _BIT_PAYLOAD_SIGNING=0;static _BIT_PAYLOAD_ENCRYPTION=1;static _BIT_ROOTED_DEVICE_CHECK=2;static _BIT_PLAY_INTEGRITY_CHECK=3;static _ALL_ACTIVE=1<<SecurityPolicy._BIT_PAYLOAD_SIGNING|1<<SecurityPolicy._BIT_PAYLOAD_ENCRYPTION|1<<SecurityPolicy._BIT_ROOTED_DEVICE_CHECK|1<<SecurityPolicy._BIT_PLAY_INTEGRITY_CHECK;_bitCode;constructor(_){this._bitCode=_}static fromBitCode(_){return new SecurityPolicy(_??SecurityPolicy._ALL_ACTIVE)}isPayloadSigningActive(){return this._isSet(SecurityPolicy._BIT_PAYLOAD_SIGNING)}isPayloadEncryptionActive(){return this._isSet(SecurityPolicy._BIT_PAYLOAD_ENCRYPTION)}isRootedDeviceCheckActive(){return this._isSet(SecurityPolicy._BIT_ROOTED_DEVICE_CHECK)}isPlayIntegrityCheckActive(){return this._isSet(SecurityPolicy._BIT_PLAY_INTEGRITY_CHECK)}_isSet(_){return(this._bitCode>>_&1)===1}}
|
|
@@ -1,145 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
const KEY_LENGTH_BYTES = 32;
|
|
3
|
-
const ITERATIONS = 200000;
|
|
4
|
-
/** UTF-8 encodes a string to bytes. */
|
|
5
|
-
export function utf8Bytes(input) {
|
|
6
|
-
return new TextEncoder().encode(input);
|
|
7
|
-
}
|
|
8
|
-
const BASE64_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
9
|
-
/** Standard-alphabet Base64 of [bytes] (no line wrap). */
|
|
10
|
-
export function base64Encode(bytes) {
|
|
11
|
-
let out = "";
|
|
12
|
-
for (let i = 0; i < bytes.length; i += 3) {
|
|
13
|
-
const b0 = bytes[i];
|
|
14
|
-
const b1 = i + 1 < bytes.length ? bytes[i + 1] : 0;
|
|
15
|
-
const b2 = i + 2 < bytes.length ? bytes[i + 2] : 0;
|
|
16
|
-
out += BASE64_ALPHABET[b0 >> 2];
|
|
17
|
-
out += BASE64_ALPHABET[((b0 & 0x03) << 4) | (b1 >> 4)];
|
|
18
|
-
out +=
|
|
19
|
-
i + 1 < bytes.length
|
|
20
|
-
? BASE64_ALPHABET[((b1 & 0x0f) << 2) | (b2 >> 6)]
|
|
21
|
-
: "=";
|
|
22
|
-
out += i + 2 < bytes.length ? BASE64_ALPHABET[b2 & 0x3f] : "=";
|
|
23
|
-
}
|
|
24
|
-
return out;
|
|
25
|
-
}
|
|
26
|
-
// Cached only once a provider is found. A not-found result is never cached, so a
|
|
27
|
-
// provider that appears later (e.g. a partner that polyfills `globalThis.crypto`
|
|
28
|
-
// or calls `react-native-quick-crypto`'s `install()` after the first signing
|
|
29
|
-
// attempt) is picked up on the next call instead of being stuck throwing.
|
|
30
|
-
let cachedSubtle;
|
|
31
|
-
/**
|
|
32
|
-
* Resolve the Web Crypto provider for request signing:
|
|
33
|
-
*
|
|
34
|
-
* 1. An existing global `crypto.subtle` — Node (vitest) provides it, and a
|
|
35
|
-
* runtime that already polyfills Web Crypto (e.g. a partner app that calls
|
|
36
|
-
* `react-native-quick-crypto`'s `install()`) exposes it here.
|
|
37
|
-
* 2. `react-native-quick-crypto` — the native (OpenSSL) provider bundled on
|
|
38
|
-
* device. Hermes ships no `crypto.subtle`, so this is the on-device path;
|
|
39
|
-
* PBKDF2/HMAC then run in compiled native code (~ms) rather than the JS
|
|
40
|
-
* engine. Its `subtle` is read across the export shapes the package exposes
|
|
41
|
-
* (`subtle`, `webcrypto.subtle`, and the same under `default`).
|
|
42
|
-
*
|
|
43
|
-
* Preferring the global first means tests transparently use Node's crypto and
|
|
44
|
-
* the lazy `require` is only reached on device (where Hermes has no global
|
|
45
|
-
* subtle and Metro has bundled the native module) — no runtime sniffing needed.
|
|
46
|
-
*
|
|
47
|
-
* Returns `null` (uncached) when neither resolves; callers throw
|
|
48
|
-
* {@link SmileIDCryptoError}. There is intentionally **no pure-JS PBKDF2/HMAC
|
|
49
|
-
* fallback**: a pure-JS 200_000-iteration PBKDF2 takes 40–80 s on device and,
|
|
50
|
-
* being silent, presents as "slow network".
|
|
51
|
-
*/
|
|
52
|
-
function resolveSubtle() {
|
|
53
|
-
if (cachedSubtle)
|
|
54
|
-
return cachedSubtle;
|
|
55
|
-
const globalSubtle = globalThis
|
|
56
|
-
.crypto?.subtle;
|
|
57
|
-
if (globalSubtle) {
|
|
58
|
-
cachedSubtle = globalSubtle;
|
|
59
|
-
return cachedSubtle;
|
|
60
|
-
}
|
|
61
|
-
try {
|
|
62
|
-
const moduleExports = require("react-native-quick-crypto");
|
|
63
|
-
const nativeSubtle = moduleExports.subtle ??
|
|
64
|
-
moduleExports.webcrypto?.subtle ??
|
|
65
|
-
moduleExports.default?.subtle ??
|
|
66
|
-
moduleExports.default?.webcrypto?.subtle;
|
|
67
|
-
if (nativeSubtle) {
|
|
68
|
-
cachedSubtle = nativeSubtle;
|
|
69
|
-
return cachedSubtle;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
catch {
|
|
73
|
-
// Module not installed / not linked.
|
|
74
|
-
}
|
|
75
|
-
// Not found — intentionally uncached so a later polyfill / install() resolves.
|
|
76
|
-
return null;
|
|
77
|
-
}
|
|
78
|
-
function requireSubtle() {
|
|
79
|
-
const subtle = resolveSubtle();
|
|
80
|
-
if (!subtle) {
|
|
81
|
-
throw new SmileIDCryptoError("No Web Crypto provider available for request signing. Install the " +
|
|
82
|
-
"`react-native-quick-crypto` peer dependency (with its peers " +
|
|
83
|
-
"`react-native-nitro-modules` and `react-native-quick-base64`), or " +
|
|
84
|
-
"expose a global `crypto.subtle`.");
|
|
85
|
-
}
|
|
86
|
-
return subtle;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* The exact bytes of [bytes] as a standalone `ArrayBuffer`. Reading `.buffer`
|
|
90
|
-
* directly is wrong when the view covers only part of a larger buffer (a
|
|
91
|
-
* `subarray` / `slice`), which would feed the surrounding bytes into PBKDF2/HMAC.
|
|
92
|
-
*/
|
|
93
|
-
function exactBuffer(bytes) {
|
|
94
|
-
return bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength);
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Low-level signing primitives: PBKDF2 key derivation and HMAC-SHA256. Stateless
|
|
98
|
-
* and deterministic, so the server reproduces the same key and MAC from the same
|
|
99
|
-
* inputs. Backed by the native Web Crypto provider resolved above.
|
|
100
|
-
*/
|
|
101
|
-
export const SigningCrypto = {
|
|
102
|
-
/**
|
|
103
|
-
* Derives a 32-byte key from [secret] and [salt] with PBKDF2-HMAC-SHA256.
|
|
104
|
-
*
|
|
105
|
-
* @throws {SmileIDCryptoError} if no provider is available or derivation fails.
|
|
106
|
-
*/
|
|
107
|
-
async deriveKey(secret, salt) {
|
|
108
|
-
const subtle = requireSubtle();
|
|
109
|
-
try {
|
|
110
|
-
const keyMaterial = await subtle.importKey("raw", exactBuffer(utf8Bytes(secret)), "PBKDF2", false, ["deriveBits"]);
|
|
111
|
-
const bits = await subtle.deriveBits({
|
|
112
|
-
name: "PBKDF2",
|
|
113
|
-
salt: exactBuffer(salt),
|
|
114
|
-
iterations: ITERATIONS,
|
|
115
|
-
hash: "SHA-256",
|
|
116
|
-
}, keyMaterial, KEY_LENGTH_BYTES * 8);
|
|
117
|
-
return new Uint8Array(bits);
|
|
118
|
-
}
|
|
119
|
-
catch (cause) {
|
|
120
|
-
if (cause instanceof SmileIDCryptoError)
|
|
121
|
-
throw cause;
|
|
122
|
-
throw new SmileIDCryptoError(`Key derivation failed: ${String(cause)}`);
|
|
123
|
-
}
|
|
124
|
-
},
|
|
125
|
-
/**
|
|
126
|
-
* Computes HMAC-SHA256 of [data] under [key].
|
|
127
|
-
*
|
|
128
|
-
* @throws {SmileIDCryptoError} if no provider is available or the MAC cannot
|
|
129
|
-
* be computed.
|
|
130
|
-
*/
|
|
131
|
-
async hmacSha256(key, data) {
|
|
132
|
-
const subtle = requireSubtle();
|
|
133
|
-
try {
|
|
134
|
-
const cryptoKey = await subtle.importKey("raw", exactBuffer(key), { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
|
|
135
|
-
const digest = await subtle.sign("HMAC", cryptoKey, exactBuffer(data));
|
|
136
|
-
return new Uint8Array(digest);
|
|
137
|
-
}
|
|
138
|
-
catch (cause) {
|
|
139
|
-
if (cause instanceof SmileIDCryptoError)
|
|
140
|
-
throw cause;
|
|
141
|
-
throw new SmileIDCryptoError(`MAC computation failed: ${String(cause)}`);
|
|
142
|
-
}
|
|
143
|
-
},
|
|
144
|
-
};
|
|
145
|
-
//# sourceMappingURL=signing_crypto.js.map
|
|
1
|
+
"use strict";import{SmileIDCryptoError as a}from"./smile_id_crypto_error";const f=32,h=2e5;export function utf8Bytes(t){return new TextEncoder().encode(t)}const c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";export function base64Encode(t){let n="";for(let e=0;e<t.length;e+=3){const r=t[e],o=e+1<t.length?t[e+1]:0,l=e+2<t.length?t[e+2]:0;n+=c[r>>2],n+=c[(r&3)<<4|o>>4],n+=e+1<t.length?c[(o&15)<<2|l>>6]:"=",n+=e+2<t.length?c[l&63]:"="}return n}let i;function p(){if(i)return i;const t=globalThis.crypto?.subtle;if(t)return i=t,i;try{const n=require("react-native-quick-crypto"),e=n.subtle??n.webcrypto?.subtle??n.default?.subtle??n.default?.webcrypto?.subtle;if(e)return i=e,i}catch{}return null}function u(){const t=p();if(!t)throw new a("No Web Crypto provider available for request signing. Install the `react-native-quick-crypto` peer dependency (with its peers `react-native-nitro-modules` and `react-native-quick-base64`), or expose a global `crypto.subtle`.");return t}function s(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}export const SigningCrypto={async deriveKey(t,n){const e=u();try{const r=await e.importKey("raw",s(utf8Bytes(t)),"PBKDF2",!1,["deriveBits"]),o=await e.deriveBits({name:"PBKDF2",salt:s(n),iterations:h,hash:"SHA-256"},r,f*8);return new Uint8Array(o)}catch(r){throw r instanceof a?r:new a(`Key derivation failed: ${String(r)}`)}},async hmacSha256(t,n){const e=u();try{const r=await e.importKey("raw",s(t),{name:"HMAC",hash:"SHA-256"},!1,["sign"]),o=await e.sign("HMAC",r,s(n));return new Uint8Array(o)}catch(r){throw r instanceof a?r:new a(`MAC computation failed: ${String(r)}`)}}};
|
|
@@ -1,14 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Error thrown by {@link SmileIDCryptoManager} and its supporting crypto
|
|
3
|
-
* routines.
|
|
4
|
-
*
|
|
5
|
-
* Typed so call sites can catch a key-derivation / MAC-computation failure
|
|
6
|
-
* (environment problem) intentionally rather than catching everything.
|
|
7
|
-
*/
|
|
8
|
-
export class SmileIDCryptoError extends Error {
|
|
9
|
-
constructor(message = "SmileID request signing failed") {
|
|
10
|
-
super(message);
|
|
11
|
-
this.name = "SmileIDCryptoError";
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=smile_id_crypto_error.js.map
|
|
1
|
+
"use strict";export class SmileIDCryptoError extends Error{constructor(r="SmileID request signing failed"){super(r),this.name="SmileIDCryptoError"}}
|
|
@@ -1,40 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { base64Encode, SigningCrypto, utf8Bytes } from "./signing_crypto";
|
|
3
|
-
/**
|
|
4
|
-
* Signs outbound requests so the Smile ID server can prove the bytes it
|
|
5
|
-
* receives were produced by a genuine SDK install.
|
|
6
|
-
*
|
|
7
|
-
* The request is reduced to a canonical payload ({@link RequestCanonicalizer}),
|
|
8
|
-
* the signing key is PBKDF2-derived from the Arkana secret salted with the
|
|
9
|
-
* payload length and request timestamp, and the payload is HMAC-SHA256'd
|
|
10
|
-
* ({@link SigningCrypto}). The Base64 result is the `smileid-request-mac` value.
|
|
11
|
-
*
|
|
12
|
-
* Constructed by the networking factory with the Arkana signing secret
|
|
13
|
-
* (obtained from the bridge) and injected into `SmileRequestMacInterceptor`.
|
|
14
|
-
* Construct directly only in tests, passing a known secret.
|
|
15
|
-
*/
|
|
16
|
-
export class SmileIDCryptoManager {
|
|
17
|
-
_signingSecret;
|
|
18
|
-
constructor(signingSecret) {
|
|
19
|
-
this._signingSecret = signingSecret;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Signs a request's `smileid-*` headers and body.
|
|
23
|
-
*
|
|
24
|
-
* @param timestamp the value of the `smileid-request-timestamp` header,
|
|
25
|
-
* reused here so the salt matches the header the server reads.
|
|
26
|
-
* @param headers the full request headers; only those prefixed `smileid-`
|
|
27
|
-
* (case-insensitive) are signed.
|
|
28
|
-
* @param body the request body, canonicalised before signing.
|
|
29
|
-
* @returns the Base64-encoded HMAC.
|
|
30
|
-
* @throws {SmileIDCryptoError} if key derivation or MAC computation fails.
|
|
31
|
-
*/
|
|
32
|
-
async sign(timestamp, headers, body) {
|
|
33
|
-
const payload = await RequestCanonicalizer.canonicalize(headers, body);
|
|
34
|
-
const salt = utf8Bytes(`${payload.length}${timestamp}`);
|
|
35
|
-
const key = await SigningCrypto.deriveKey(this._signingSecret, salt);
|
|
36
|
-
const mac = await SigningCrypto.hmacSha256(key, payload);
|
|
37
|
-
return base64Encode(mac);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=smile_id_crypto_manager.js.map
|
|
1
|
+
"use strict";import{RequestCanonicalizer as r}from"./request_canonicalizer";import{base64Encode as g,SigningCrypto as e,utf8Bytes as l}from"./signing_crypto";export class SmileIDCryptoManager{_signingSecret;constructor(t){this._signingSecret=t}async sign(t,i,a){const n=await r.canonicalize(i,a),s=l(`${n.length}${t}`),c=await e.deriveKey(this._signingSecret,s),o=await e.hmacSha256(c,n);return g(o)}}
|