@smileid/usesmileid 12.0.0-beta01 → 12.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/README.md +701 -89
- package/dist/camera/camera_defaults.d.ts +14 -9
- package/dist/camera/camera_defaults.d.ts.map +1 -1
- package/dist/camera/camera_defaults.js +11 -9
- package/dist/camera/camera_defaults.js.map +1 -1
- package/dist/camera/orientation_degrees.d.ts +5 -6
- package/dist/camera/orientation_degrees.d.ts.map +1 -1
- package/dist/camera/orientation_degrees.js +5 -6
- package/dist/camera/orientation_degrees.js.map +1 -1
- package/dist/core/exception/agent_mode_with_enhanced_liveness_exception.d.ts +11 -0
- package/dist/core/exception/agent_mode_with_enhanced_liveness_exception.d.ts.map +1 -0
- package/dist/core/exception/agent_mode_with_enhanced_liveness_exception.js +17 -0
- package/dist/core/exception/agent_mode_with_enhanced_liveness_exception.js.map +1 -0
- package/dist/core/exception/capture_validation_exceptions.d.ts +1 -0
- package/dist/core/exception/capture_validation_exceptions.d.ts.map +1 -1
- package/dist/core/exception/capture_validation_exceptions.js +1 -0
- package/dist/core/exception/capture_validation_exceptions.js.map +1 -1
- package/dist/core/exception/index.d.ts +1 -0
- package/dist/core/exception/index.d.ts.map +1 -1
- package/dist/core/exception/index.js +1 -0
- package/dist/core/exception/index.js.map +1 -1
- package/dist/core/exception/use_smile_id_error_code.d.ts +1 -0
- package/dist/core/exception/use_smile_id_error_code.d.ts.map +1 -1
- package/dist/core/exception/use_smile_id_error_code.js +1 -0
- package/dist/core/exception/use_smile_id_error_code.js.map +1 -1
- package/dist/core/models/config.d.ts +19 -0
- package/dist/core/models/config.d.ts.map +1 -1
- package/dist/core/models/document_capture_mode.d.ts +8 -0
- package/dist/core/models/document_capture_mode.d.ts.map +1 -1
- package/dist/core/models/document_capture_mode.js +24 -0
- package/dist/core/models/document_capture_mode.js.map +1 -1
- package/dist/core/models/document_type.d.ts +2 -2
- package/dist/core/models/document_type.d.ts.map +1 -1
- package/dist/core/models/document_type.js +7 -5
- package/dist/core/models/document_type.js.map +1 -1
- package/dist/core/models/global_privacy_control.d.ts +36 -0
- package/dist/core/models/global_privacy_control.d.ts.map +1 -0
- package/dist/core/models/global_privacy_control.js +39 -0
- package/dist/core/models/global_privacy_control.js.map +1 -0
- package/dist/core/models/network_config.d.ts +2 -2
- package/dist/core/models/network_config.js +2 -2
- package/dist/core/models/result.d.ts +9 -8
- package/dist/core/models/result.d.ts.map +1 -1
- package/dist/core/models/result.js +5 -6
- package/dist/core/models/result.js.map +1 -1
- package/dist/data/api/interceptors/smile_auth_interceptor.d.ts.map +1 -1
- package/dist/data/api/interceptors/smile_auth_interceptor.js +3 -17
- package/dist/data/api/interceptors/smile_auth_interceptor.js.map +1 -1
- package/dist/data/api/interceptors/smile_integrity_interceptor.d.ts +11 -0
- package/dist/data/api/interceptors/smile_integrity_interceptor.d.ts.map +1 -1
- package/dist/data/api/interceptors/smile_integrity_interceptor.js +13 -0
- package/dist/data/api/interceptors/smile_integrity_interceptor.js.map +1 -1
- package/dist/data/api/interceptors/smile_request_mac_interceptor.d.ts +8 -0
- package/dist/data/api/interceptors/smile_request_mac_interceptor.d.ts.map +1 -1
- package/dist/data/api/interceptors/smile_request_mac_interceptor.js +11 -0
- package/dist/data/api/interceptors/smile_request_mac_interceptor.js.map +1 -1
- package/dist/data/api/smile_id_api.d.ts +1 -1
- package/dist/data/api/smile_id_api.d.ts.map +1 -1
- package/dist/data/compression/compressible_asset.d.ts +41 -0
- package/dist/data/compression/compressible_asset.d.ts.map +1 -0
- package/dist/data/compression/compressible_asset.js +34 -0
- package/dist/data/compression/compressible_asset.js.map +1 -0
- package/dist/data/compression/payload_compression_config.d.ts +36 -0
- package/dist/data/compression/payload_compression_config.d.ts.map +1 -0
- package/dist/data/compression/payload_compression_config.js +52 -0
- package/dist/data/compression/payload_compression_config.js.map +1 -0
- package/dist/data/compression/payload_compression_runner.d.ts +29 -0
- package/dist/data/compression/payload_compression_runner.d.ts.map +1 -0
- package/dist/data/compression/payload_compression_runner.js +55 -0
- package/dist/data/compression/payload_compression_runner.js.map +1 -0
- package/dist/data/compression/payload_compressor.d.ts +40 -0
- package/dist/data/compression/payload_compressor.d.ts.map +1 -0
- package/dist/data/compression/payload_compressor.js +126 -0
- package/dist/data/compression/payload_compressor.js.map +1 -0
- package/dist/data/compression/uri_compressible_asset.d.ts +23 -0
- package/dist/data/compression/uri_compressible_asset.d.ts.map +1 -0
- package/dist/data/compression/uri_compressible_asset.js +77 -0
- package/dist/data/compression/uri_compressible_asset.js.map +1 -0
- package/dist/data/dsl/builder/cache_config_builder.d.ts +2 -1
- package/dist/data/dsl/builder/cache_config_builder.d.ts.map +1 -1
- package/dist/data/dsl/builder/cache_config_builder.js +2 -1
- package/dist/data/dsl/builder/cache_config_builder.js.map +1 -1
- package/dist/data/dsl/builder/config_builder.d.ts +40 -14
- package/dist/data/dsl/builder/config_builder.d.ts.map +1 -1
- package/dist/data/dsl/builder/config_builder.js +40 -14
- package/dist/data/dsl/builder/config_builder.js.map +1 -1
- package/dist/data/dsl/builder/interceptor_config_builder.d.ts +9 -7
- package/dist/data/dsl/builder/interceptor_config_builder.d.ts.map +1 -1
- package/dist/data/dsl/builder/interceptor_config_builder.js +9 -7
- package/dist/data/dsl/builder/interceptor_config_builder.js.map +1 -1
- package/dist/data/dsl/builder/retry_config_builder.d.ts +19 -4
- package/dist/data/dsl/builder/retry_config_builder.d.ts.map +1 -1
- package/dist/data/dsl/builder/retry_config_builder.js +21 -6
- package/dist/data/dsl/builder/retry_config_builder.js.map +1 -1
- package/dist/data/dsl/builder/timeout_config_builder.d.ts +4 -0
- package/dist/data/dsl/builder/timeout_config_builder.d.ts.map +1 -1
- package/dist/data/dsl/builder/timeout_config_builder.js +4 -0
- package/dist/data/dsl/builder/timeout_config_builder.js.map +1 -1
- package/dist/data/dsl/use_smile_id_network_builder.d.ts +17 -0
- package/dist/data/dsl/use_smile_id_network_builder.d.ts.map +1 -1
- package/dist/data/dsl/use_smile_id_network_builder.js +17 -0
- package/dist/data/dsl/use_smile_id_network_builder.js.map +1 -1
- package/dist/data/factory/networking_factory.d.ts.map +1 -1
- package/dist/data/factory/networking_factory.js +11 -1
- package/dist/data/factory/networking_factory.js.map +1 -1
- package/dist/data/repository/use_smile_id_repository_impl.d.ts +6 -0
- package/dist/data/repository/use_smile_id_repository_impl.d.ts.map +1 -1
- package/dist/data/repository/use_smile_id_repository_impl.js +82 -8
- package/dist/data/repository/use_smile_id_repository_impl.js.map +1 -1
- package/dist/data/security/request_canonicalizer.d.ts.map +1 -1
- package/dist/data/security/request_canonicalizer.js +14 -2
- package/dist/data/security/request_canonicalizer.js.map +1 -1
- package/dist/data/security/security_policy.d.ts +43 -0
- package/dist/data/security/security_policy.d.ts.map +1 -0
- package/dist/data/security/security_policy.js +61 -0
- package/dist/data/security/security_policy.js.map +1 -0
- package/dist/data/smile_id_urls.d.ts +1 -1
- package/dist/data/smile_id_urls.js +1 -1
- package/dist/data/smile_id_urls.js.map +1 -1
- package/dist/data/util/retry_util.d.ts +2 -2
- package/dist/data/util/retry_util.d.ts.map +1 -1
- package/dist/data/util/retry_util.js +7 -1
- package/dist/data/util/retry_util.js.map +1 -1
- package/dist/data/util/use_smile_id_token_decoder.d.ts +22 -0
- package/dist/data/util/use_smile_id_token_decoder.d.ts.map +1 -1
- package/dist/data/util/use_smile_id_token_decoder.js +58 -24
- package/dist/data/util/use_smile_id_token_decoder.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/l10n/strings_en.d.ts +2 -1
- package/dist/l10n/strings_en.d.ts.map +1 -1
- package/dist/l10n/strings_en.js +2 -1
- package/dist/l10n/strings_en.js.map +1 -1
- package/dist/l10n/use_smile_id_localizations.d.ts +1 -0
- package/dist/l10n/use_smile_id_localizations.d.ts.map +1 -1
- package/dist/l10n/use_smile_id_localizations.js +3 -0
- package/dist/l10n/use_smile_id_localizations.js.map +1 -1
- package/dist/metadata/builder_configuration.d.ts +44 -0
- package/dist/metadata/builder_configuration.d.ts.map +1 -0
- package/dist/metadata/builder_configuration.js +35 -0
- package/dist/metadata/builder_configuration.js.map +1 -0
- package/dist/metadata/captured_image_properties.d.ts +11 -0
- package/dist/metadata/captured_image_properties.d.ts.map +1 -0
- package/dist/metadata/captured_image_properties.js +11 -0
- package/dist/metadata/captured_image_properties.js.map +1 -0
- package/dist/metadata/device_orientation_collector.d.ts +17 -0
- package/dist/metadata/device_orientation_collector.d.ts.map +1 -0
- package/dist/metadata/device_orientation_collector.js +66 -0
- package/dist/metadata/device_orientation_collector.js.map +1 -0
- package/dist/metadata/geolocation.d.ts +20 -0
- package/dist/metadata/geolocation.d.ts.map +1 -0
- package/dist/metadata/geolocation.js +40 -0
- package/dist/metadata/geolocation.js.map +1 -0
- package/dist/metadata/metadata_configuration_mappers.d.ts +47 -0
- package/dist/metadata/metadata_configuration_mappers.d.ts.map +1 -0
- package/dist/metadata/metadata_configuration_mappers.js +178 -0
- package/dist/metadata/metadata_configuration_mappers.js.map +1 -0
- package/dist/metadata/model_configuration.d.ts +41 -0
- package/dist/metadata/model_configuration.d.ts.map +1 -0
- package/dist/metadata/model_configuration.js +44 -0
- package/dist/metadata/model_configuration.js.map +1 -0
- package/dist/metadata/optional_native_modules.d.ts +79 -3
- package/dist/metadata/optional_native_modules.d.ts.map +1 -1
- package/dist/metadata/optional_native_modules.js +108 -3
- package/dist/metadata/optional_native_modules.js.map +1 -1
- package/dist/metadata/use_smile_id_metadata.d.ts +45 -7
- package/dist/metadata/use_smile_id_metadata.d.ts.map +1 -1
- package/dist/metadata/use_smile_id_metadata.js +85 -13
- package/dist/metadata/use_smile_id_metadata.js.map +1 -1
- package/dist/metadata/use_smile_id_metadata_factory.d.ts +37 -0
- package/dist/metadata/use_smile_id_metadata_factory.d.ts.map +1 -1
- package/dist/metadata/use_smile_id_metadata_factory.js +197 -16
- package/dist/metadata/use_smile_id_metadata_factory.js.map +1 -1
- package/dist/presentation/assets/svg/document_shimmer_strings.d.ts +14 -0
- package/dist/presentation/assets/svg/document_shimmer_strings.d.ts.map +1 -0
- package/dist/presentation/assets/svg/document_shimmer_strings.js +14 -0
- package/dist/presentation/assets/svg/document_shimmer_strings.js.map +1 -0
- package/dist/presentation/assets/svg/instruction_svg_strings.d.ts +12 -4
- package/dist/presentation/assets/svg/instruction_svg_strings.d.ts.map +1 -1
- package/dist/presentation/assets/svg/instruction_svg_strings.js +19 -8
- package/dist/presentation/assets/svg/instruction_svg_strings.js.map +1 -1
- package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.d.ts +0 -5
- package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.d.ts.map +1 -1
- package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.js +0 -5
- package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.js.map +1 -1
- package/dist/presentation/components/icons/index.d.ts +24 -8
- package/dist/presentation/components/icons/index.d.ts.map +1 -1
- package/dist/presentation/components/icons/index.js +31 -11
- package/dist/presentation/components/icons/index.js.map +1 -1
- package/dist/presentation/components/use_smile_id_attribution.d.ts +1 -1
- package/dist/presentation/components/use_smile_id_button.d.ts +2 -2
- package/dist/presentation/components/use_smile_id_button.js +4 -4
- package/dist/presentation/components/use_smile_id_button.js.map +1 -1
- package/dist/presentation/components/use_smile_id_capture_content.d.ts +13 -0
- package/dist/presentation/components/use_smile_id_capture_content.d.ts.map +1 -1
- package/dist/presentation/components/use_smile_id_capture_content.js +15 -9
- package/dist/presentation/components/use_smile_id_capture_content.js.map +1 -1
- package/dist/presentation/components/use_smile_id_captured_document_image.d.ts +2 -3
- package/dist/presentation/components/use_smile_id_captured_document_image.d.ts.map +1 -1
- package/dist/presentation/components/use_smile_id_captured_document_image.js +1 -3
- package/dist/presentation/components/use_smile_id_captured_document_image.js.map +1 -1
- package/dist/presentation/components/use_smile_id_document_capture_controls.d.ts +12 -6
- package/dist/presentation/components/use_smile_id_document_capture_controls.d.ts.map +1 -1
- package/dist/presentation/components/use_smile_id_document_capture_controls.js +59 -16
- package/dist/presentation/components/use_smile_id_document_capture_controls.js.map +1 -1
- package/dist/presentation/components/use_smile_id_document_overlay.d.ts +22 -5
- package/dist/presentation/components/use_smile_id_document_overlay.d.ts.map +1 -1
- package/dist/presentation/components/use_smile_id_document_overlay.js +80 -40
- package/dist/presentation/components/use_smile_id_document_overlay.js.map +1 -1
- package/dist/presentation/components/use_smile_id_document_shimmer.d.ts +15 -0
- package/dist/presentation/components/use_smile_id_document_shimmer.d.ts.map +1 -0
- package/dist/presentation/components/use_smile_id_document_shimmer.js +23 -0
- package/dist/presentation/components/use_smile_id_document_shimmer.js.map +1 -0
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.d.ts +5 -2
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.d.ts.map +1 -1
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.js +9 -6
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.js.map +1 -1
- package/dist/presentation/components/use_smile_id_guideline_thumbnail.d.ts.map +1 -1
- package/dist/presentation/components/use_smile_id_guideline_thumbnail.js +84 -1
- package/dist/presentation/components/use_smile_id_guideline_thumbnail.js.map +1 -1
- package/dist/presentation/components/use_smile_id_instructions_hero.d.ts +3 -1
- package/dist/presentation/components/use_smile_id_instructions_hero.d.ts.map +1 -1
- package/dist/presentation/components/use_smile_id_instructions_hero.js +25 -5
- package/dist/presentation/components/use_smile_id_instructions_hero.js.map +1 -1
- package/dist/presentation/components/use_smile_id_oval_border_palette.d.ts.map +1 -1
- package/dist/presentation/components/use_smile_id_oval_border_palette.js +7 -3
- package/dist/presentation/components/use_smile_id_oval_border_palette.js.map +1 -1
- package/dist/presentation/flow/dsl/builder/config_builder.d.ts +28 -0
- package/dist/presentation/flow/dsl/builder/config_builder.d.ts.map +1 -1
- package/dist/presentation/flow/dsl/builder/config_builder.js +30 -0
- package/dist/presentation/flow/dsl/builder/config_builder.js.map +1 -1
- package/dist/presentation/flow/dsl/builder/ml_builder.d.ts +13 -4
- package/dist/presentation/flow/dsl/builder/ml_builder.d.ts.map +1 -1
- package/dist/presentation/flow/dsl/builder/ml_builder.js +3 -2
- package/dist/presentation/flow/dsl/builder/ml_builder.js.map +1 -1
- package/dist/presentation/flow/dsl/builder/screens_builder.d.ts +110 -12
- package/dist/presentation/flow/dsl/builder/screens_builder.d.ts.map +1 -1
- package/dist/presentation/flow/dsl/builder/screens_builder.js +110 -12
- package/dist/presentation/flow/dsl/builder/screens_builder.js.map +1 -1
- package/dist/presentation/flow/dsl/builder/theme_builder.d.ts +15 -2
- package/dist/presentation/flow/dsl/builder/theme_builder.d.ts.map +1 -1
- package/dist/presentation/flow/dsl/builder/theme_builder.js +15 -2
- package/dist/presentation/flow/dsl/builder/theme_builder.js.map +1 -1
- package/dist/presentation/flow/dsl/use_smile_id_builder.d.ts +6 -4
- package/dist/presentation/flow/dsl/use_smile_id_builder.d.ts.map +1 -1
- package/dist/presentation/flow/dsl/use_smile_id_builder.js.map +1 -1
- package/dist/presentation/flow/dsl/use_smile_id_flow_builder.d.ts +62 -36
- package/dist/presentation/flow/dsl/use_smile_id_flow_builder.d.ts.map +1 -1
- package/dist/presentation/flow/dsl/use_smile_id_flow_builder.js +62 -36
- package/dist/presentation/flow/dsl/use_smile_id_flow_builder.js.map +1 -1
- package/dist/presentation/flow/flow_navigation_manager.d.ts +44 -5
- package/dist/presentation/flow/flow_navigation_manager.d.ts.map +1 -1
- package/dist/presentation/flow/flow_navigation_manager.js +148 -11
- package/dist/presentation/flow/flow_navigation_manager.js.map +1 -1
- package/dist/presentation/flow/model/instruction_guideline.d.ts +9 -0
- package/dist/presentation/flow/model/instruction_guideline.d.ts.map +1 -1
- package/dist/presentation/flow/model/instructions_defaults.d.ts +11 -2
- package/dist/presentation/flow/model/instructions_defaults.d.ts.map +1 -1
- package/dist/presentation/flow/model/instructions_defaults.js +74 -26
- package/dist/presentation/flow/model/instructions_defaults.js.map +1 -1
- package/dist/presentation/flow/screen/orchestrated_capture_screen.d.ts.map +1 -1
- package/dist/presentation/flow/screen/orchestrated_capture_screen.js +48 -14
- package/dist/presentation/flow/screen/orchestrated_capture_screen.js.map +1 -1
- package/dist/presentation/flow/screen/orchestrated_consent_screen.d.ts.map +1 -1
- package/dist/presentation/flow/screen/orchestrated_consent_screen.js +3 -1
- package/dist/presentation/flow/screen/orchestrated_consent_screen.js.map +1 -1
- package/dist/presentation/flow/screen/orchestrated_instructions_screen.js +1 -1
- package/dist/presentation/flow/screen/orchestrated_instructions_screen.js.map +1 -1
- package/dist/presentation/flow/screen/orchestrated_preview_screen.d.ts.map +1 -1
- package/dist/presentation/flow/screen/orchestrated_preview_screen.js +3 -9
- package/dist/presentation/flow/screen/orchestrated_preview_screen.js.map +1 -1
- package/dist/presentation/flow/screen/orchestrated_processing_screen.js +3 -3
- package/dist/presentation/flow/screen/orchestrated_processing_screen.js.map +1 -1
- package/dist/presentation/flow/use_smile_id_flow.d.ts.map +1 -1
- package/dist/presentation/flow/use_smile_id_flow.js +10 -4
- package/dist/presentation/flow/use_smile_id_flow.js.map +1 -1
- package/dist/presentation/flow/validation/flow_validator.d.ts.map +1 -1
- package/dist/presentation/flow/validation/flow_validator.js +42 -20
- package/dist/presentation/flow/validation/flow_validator.js.map +1 -1
- package/dist/presentation/flow/validation/job_type_validator.d.ts.map +1 -1
- package/dist/presentation/flow/validation/job_type_validator.js +14 -0
- package/dist/presentation/flow/validation/job_type_validator.js.map +1 -1
- package/dist/presentation/screen/helpers/capture_screen_helpers.d.ts.map +1 -1
- package/dist/presentation/screen/helpers/capture_screen_helpers.js +1 -0
- package/dist/presentation/screen/helpers/capture_screen_helpers.js.map +1 -1
- package/dist/presentation/screen/helpers/capture_ui_state.d.ts +6 -6
- package/dist/presentation/screen/helpers/capture_ui_state.d.ts.map +1 -1
- package/dist/presentation/screen/helpers/capture_ui_state.js +19 -19
- package/dist/presentation/screen/helpers/capture_ui_state.js.map +1 -1
- package/dist/presentation/screen/helpers/ess_turn_haptics.d.ts +2 -2
- package/dist/presentation/screen/helpers/ess_turn_haptics.d.ts.map +1 -1
- package/dist/presentation/screen/helpers/ess_turn_haptics.js +6 -6
- package/dist/presentation/screen/helpers/ess_turn_haptics.js.map +1 -1
- package/dist/presentation/screen/helpers/instructions_screen_helpers.d.ts +1 -0
- package/dist/presentation/screen/helpers/instructions_screen_helpers.d.ts.map +1 -1
- package/dist/presentation/screen/helpers/instructions_screen_helpers.js +6 -2
- package/dist/presentation/screen/helpers/instructions_screen_helpers.js.map +1 -1
- package/dist/presentation/screen/helpers/scan_state_to_overlay_state.d.ts +5 -5
- package/dist/presentation/screen/helpers/scan_state_to_overlay_state.d.ts.map +1 -1
- package/dist/presentation/screen/helpers/scan_state_to_overlay_state.js +14 -11
- package/dist/presentation/screen/helpers/scan_state_to_overlay_state.js.map +1 -1
- package/dist/presentation/screen/helpers/use_capture_orientation_lock.d.ts +13 -3
- package/dist/presentation/screen/helpers/use_capture_orientation_lock.d.ts.map +1 -1
- package/dist/presentation/screen/helpers/use_capture_orientation_lock.js +48 -6
- package/dist/presentation/screen/helpers/use_capture_orientation_lock.js.map +1 -1
- package/dist/presentation/screen/use_smile_id_capture_screen.d.ts +21 -3
- package/dist/presentation/screen/use_smile_id_capture_screen.d.ts.map +1 -1
- package/dist/presentation/screen/use_smile_id_capture_screen.js +188 -32
- package/dist/presentation/screen/use_smile_id_capture_screen.js.map +1 -1
- package/dist/presentation/screen/use_smile_id_consent_screen.d.ts +7 -0
- package/dist/presentation/screen/use_smile_id_consent_screen.d.ts.map +1 -1
- package/dist/presentation/screen/use_smile_id_consent_screen.js +6 -5
- package/dist/presentation/screen/use_smile_id_consent_screen.js.map +1 -1
- package/dist/presentation/screen/use_smile_id_document_back_instructions.d.ts.map +1 -1
- package/dist/presentation/screen/use_smile_id_document_back_instructions.js +5 -13
- package/dist/presentation/screen/use_smile_id_document_back_instructions.js.map +1 -1
- package/dist/presentation/screen/use_smile_id_document_preview_screen.d.ts +2 -3
- package/dist/presentation/screen/use_smile_id_document_preview_screen.d.ts.map +1 -1
- package/dist/presentation/screen/use_smile_id_document_preview_screen.js +17 -12
- package/dist/presentation/screen/use_smile_id_document_preview_screen.js.map +1 -1
- package/dist/presentation/screen/use_smile_id_instructions_screen.d.ts +2 -0
- package/dist/presentation/screen/use_smile_id_instructions_screen.d.ts.map +1 -1
- package/dist/presentation/screen/use_smile_id_instructions_screen.js +2 -1
- package/dist/presentation/screen/use_smile_id_instructions_screen.js.map +1 -1
- package/dist/presentation/screen/use_smile_id_preview_screen.d.ts +7 -26
- package/dist/presentation/screen/use_smile_id_preview_screen.d.ts.map +1 -1
- package/dist/presentation/screen/use_smile_id_preview_screen.js +10 -20
- package/dist/presentation/screen/use_smile_id_preview_screen.js.map +1 -1
- package/dist/presentation/screen/use_smile_id_processing_screen.d.ts +2 -3
- package/dist/presentation/screen/use_smile_id_processing_screen.d.ts.map +1 -1
- package/dist/presentation/screen/use_smile_id_processing_screen.js +4 -3
- package/dist/presentation/screen/use_smile_id_processing_screen.js.map +1 -1
- package/dist/presentation/theme/theme.d.ts +1 -1
- package/dist/presentation/theme/theme.d.ts.map +1 -1
- package/dist/presentation/theme/theme.js +20 -18
- package/dist/presentation/theme/theme.js.map +1 -1
- package/dist/presentation/utils/force_max_brightness.d.ts +4 -4
- package/dist/presentation/utils/locale_utils.d.ts +10 -4
- package/dist/presentation/utils/locale_utils.d.ts.map +1 -1
- package/dist/presentation/utils/locale_utils.js +13 -5
- package/dist/presentation/utils/locale_utils.js.map +1 -1
- package/dist/testing/fake_face_analyzer.d.ts +43 -0
- package/dist/testing/fake_face_analyzer.d.ts.map +1 -0
- package/dist/testing/fake_face_analyzer.js +52 -0
- package/dist/testing/fake_face_analyzer.js.map +1 -0
- package/dist/testing/index.d.ts +5 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +7 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/scenario_expectations.d.ts +28 -0
- package/dist/testing/scenario_expectations.d.ts.map +1 -0
- package/dist/testing/scenario_expectations.js +65 -0
- package/dist/testing/scenario_expectations.js.map +1 -0
- package/dist/testing/scenario_loader.d.ts +11 -0
- package/dist/testing/scenario_loader.d.ts.map +1 -0
- package/dist/testing/scenario_loader.js +64 -0
- package/dist/testing/scenario_loader.js.map +1 -0
- package/dist/testing/scripted_scan_results.d.ts +17 -0
- package/dist/testing/scripted_scan_results.d.ts.map +1 -0
- package/dist/testing/scripted_scan_results.js +52 -0
- package/dist/testing/scripted_scan_results.js.map +1 -0
- package/package.json +34 -7
- package/src/__tests__/dsl.test.ts +51 -1
- package/src/__tests__/react_native_mock.tsx +8 -0
- package/src/__tests__/setup_react_native.ts +17 -2
- package/src/__tests__/snapshots/__snapshots__/screens_structural.test.tsx.snap +5261 -0
- package/src/__tests__/snapshots/screens_structural.test.tsx +230 -0
- package/src/camera/__tests__/use_smile_id_camera_system.test.ts +103 -0
- package/src/camera/camera_defaults.ts +11 -9
- package/src/camera/orientation_degrees.ts +5 -6
- package/src/core/exception/__tests__/builder_validation_exceptions.test.ts +67 -0
- package/src/core/exception/agent_mode_with_enhanced_liveness_exception.ts +20 -0
- package/src/core/exception/capture_validation_exceptions.ts +1 -0
- package/src/core/exception/index.ts +1 -0
- package/src/core/exception/use_smile_id_error_code.ts +1 -0
- package/src/core/models/__tests__/document_type.test.ts +7 -5
- package/src/core/models/__tests__/flow_models.test.ts +26 -0
- package/src/core/models/config.ts +22 -0
- package/src/core/models/document_capture_mode.ts +27 -0
- package/src/core/models/document_type.ts +7 -5
- package/src/core/models/global_privacy_control.ts +45 -0
- package/src/core/models/network_config.ts +2 -2
- package/src/core/models/result.ts +9 -8
- package/src/data/api/__tests__/smile_id_api.test.ts +1 -1
- package/src/data/api/interceptors/__tests__/gzip_interceptor.test.ts +83 -0
- package/src/data/api/interceptors/__tests__/smile_integrity_interceptor.test.ts +37 -1
- package/src/data/api/interceptors/__tests__/smile_request_mac_interceptor.test.ts +59 -1
- package/src/data/api/interceptors/smile_auth_interceptor.ts +3 -18
- package/src/data/api/interceptors/smile_integrity_interceptor.ts +20 -0
- package/src/data/api/interceptors/smile_request_mac_interceptor.ts +13 -0
- package/src/data/compression/__tests__/payload_compressor.test.ts +200 -0
- package/src/data/compression/__tests__/payload_compressor_real_jpeg.test.ts +226 -0
- package/src/data/compression/compressible_asset.ts +62 -0
- package/src/data/compression/payload_compression_config.ts +53 -0
- package/src/data/compression/payload_compression_runner.ts +102 -0
- package/src/data/compression/payload_compressor.ts +164 -0
- package/src/data/compression/uri_compressible_asset.ts +85 -0
- package/src/data/dsl/builder/__tests__/config_builders.test.ts +62 -0
- package/src/data/dsl/builder/cache_config_builder.ts +3 -1
- package/src/data/dsl/builder/config_builder.ts +45 -14
- package/src/data/dsl/builder/interceptor_config_builder.ts +9 -7
- package/src/data/dsl/builder/retry_config_builder.ts +27 -6
- package/src/data/dsl/builder/timeout_config_builder.ts +7 -0
- package/src/data/dsl/use_smile_id_network_builder.ts +17 -0
- package/src/data/factory/__tests__/retry_gzip_mac_composition.test.ts +163 -0
- package/src/data/factory/__tests__/signed_job_submission_headers.test.ts +1 -1
- package/src/data/factory/networking_factory.ts +14 -1
- package/src/data/repository/__tests__/network_retries.test.ts +117 -0
- package/src/data/repository/__tests__/use_smile_id_repository.test.ts +1 -1
- package/src/data/repository/use_smile_id_repository_impl.ts +96 -9
- package/src/data/security/__tests__/request_canonicalizer.test.ts +132 -0
- package/src/data/security/__tests__/security_policy.test.ts +96 -0
- package/src/data/security/__tests__/smile_id_crypto_manager.test.ts +18 -0
- package/src/data/security/request_canonicalizer.ts +15 -2
- package/src/data/security/security_policy.ts +70 -0
- package/src/data/smile_id_urls.ts +1 -1
- package/src/data/util/__tests__/retry_util.test.ts +25 -0
- package/src/data/util/__tests__/use_smile_id_token_decoder.test.ts +57 -1
- package/src/data/util/retry_util.ts +12 -3
- package/src/data/util/use_smile_id_token_decoder.ts +76 -28
- package/src/index.ts +6 -4
- package/src/l10n/strings_en.ts +2 -1
- package/src/l10n/use_smile_id_localizations.ts +3 -0
- package/src/metadata/__tests__/device_orientation_collector.test.ts +15 -0
- package/src/metadata/__tests__/metadata_configuration_mappers.test.ts +254 -0
- package/src/metadata/__tests__/metadata_configuration_objects.test.ts +86 -0
- package/src/metadata/__tests__/metadata_device_context.test.ts +147 -0
- package/src/metadata/__tests__/metadata_device_os_android.test.ts +18 -0
- package/src/metadata/__tests__/metadata_golden_fixture.json +13 -0
- package/src/metadata/__tests__/metadata_payload_golden.test.ts +193 -0
- package/src/metadata/__tests__/use_smile_id_metadata.test.ts +19 -25
- package/src/metadata/builder_configuration.ts +69 -0
- package/src/metadata/captured_image_properties.ts +10 -0
- package/src/metadata/device_orientation_collector.ts +75 -0
- package/src/metadata/geolocation.ts +46 -0
- package/src/metadata/metadata_configuration_mappers.ts +248 -0
- package/src/metadata/model_configuration.ts +68 -0
- package/src/metadata/optional_native_modules.ts +157 -3
- package/src/metadata/use_smile_id_metadata.ts +140 -17
- package/src/metadata/use_smile_id_metadata_factory.ts +211 -16
- package/src/presentation/assets/si_document_green_book_hero_animation.json +1 -4668
- package/src/presentation/assets/si_document_hero_animation.json +1 -4799
- package/src/presentation/assets/si_document_hero_back_animation.json +1 -2039
- package/src/presentation/assets/si_document_passport_hero_animation.json +1 -14491
- package/src/presentation/assets/si_ess_all_directions_hero_animation.json +1 -0
- package/src/presentation/assets/si_ess_animation_all_directions.json +1 -5575
- package/src/presentation/assets/si_selfie_hero_animation.json +1 -1439
- package/src/presentation/assets/si_smile_to_capture_animation.json +1 -1439
- package/src/presentation/assets/svg/document_shimmer_strings.ts +17 -0
- package/src/presentation/assets/svg/instruction_svg_strings.ts +34 -12
- package/src/presentation/components/__tests__/enhanced_smart_selfie_animation_frames.test.ts +1 -3
- package/src/presentation/components/__tests__/use_smile_id_enhanced_smart_selfie_clip.test.tsx +12 -8
- package/src/presentation/components/__tests__/use_smile_id_guideline_thumbnail.test.tsx +34 -1
- package/src/presentation/components/__tests__/use_smile_id_instructions_hero.test.tsx +71 -0
- package/src/presentation/components/__tests__/use_smile_id_oval_border_palette.test.ts +7 -5
- package/src/presentation/components/helpers/enhanced_smart_selfie_animation_frames.ts +0 -6
- package/src/presentation/components/icons/index.tsx +65 -18
- package/src/presentation/components/use_smile_id_attribution.tsx +1 -1
- package/src/presentation/components/use_smile_id_button.tsx +4 -4
- package/src/presentation/components/use_smile_id_capture_content.tsx +36 -12
- package/src/presentation/components/use_smile_id_captured_document_image.tsx +3 -8
- package/src/presentation/components/use_smile_id_document_capture_controls.tsx +103 -39
- package/src/presentation/components/use_smile_id_document_overlay.tsx +134 -44
- package/src/presentation/components/use_smile_id_document_shimmer.tsx +51 -0
- package/src/presentation/components/use_smile_id_enhanced_smart_selfie_clip.tsx +9 -6
- package/src/presentation/components/use_smile_id_guideline_thumbnail.tsx +131 -2
- package/src/presentation/components/use_smile_id_instructions_hero.tsx +111 -60
- package/src/presentation/components/use_smile_id_oval_border_palette.ts +7 -3
- package/src/presentation/flow/__tests__/document_flow_navigation.test.ts +203 -4
- package/src/presentation/flow/__tests__/flow_navigation_manager.test.ts +49 -0
- package/src/presentation/flow/dsl/builder/__tests__/config_builder.test.ts +25 -0
- package/src/presentation/flow/dsl/builder/config_builder.ts +35 -0
- package/src/presentation/flow/dsl/builder/ml_builder.ts +13 -4
- package/src/presentation/flow/dsl/builder/screens_builder.ts +110 -12
- package/src/presentation/flow/dsl/builder/theme_builder.ts +19 -2
- package/src/presentation/flow/dsl/use_smile_id_builder.tsx +6 -4
- package/src/presentation/flow/dsl/use_smile_id_flow_builder.ts +62 -36
- package/src/presentation/flow/flow_navigation_manager.ts +185 -14
- package/src/presentation/flow/model/instruction_guideline.ts +6 -0
- package/src/presentation/flow/model/instructions_defaults.ts +104 -26
- package/src/presentation/flow/screen/orchestrated_capture_screen.tsx +60 -12
- package/src/presentation/flow/screen/orchestrated_consent_screen.tsx +5 -0
- package/src/presentation/flow/screen/orchestrated_instructions_screen.tsx +1 -0
- package/src/presentation/flow/screen/orchestrated_preview_screen.tsx +4 -14
- package/src/presentation/flow/screen/orchestrated_processing_screen.tsx +3 -3
- package/src/presentation/flow/use_smile_id_flow.tsx +11 -4
- package/src/presentation/flow/validation/__tests__/flow_validator.test.ts +61 -1
- package/src/presentation/flow/validation/__tests__/job_type_validator.test.ts +64 -0
- package/src/presentation/flow/validation/flow_validator.ts +55 -26
- package/src/presentation/flow/validation/job_type_validator.ts +24 -0
- package/src/presentation/screen/__tests__/capture_ui_state.test.ts +66 -47
- package/src/presentation/screen/__tests__/ess_turn_haptics.test.ts +15 -11
- package/src/presentation/screen/__tests__/instructions_screen_helpers.test.ts +15 -3
- package/src/presentation/screen/__tests__/scan_state_to_overlay_state.test.ts +47 -27
- package/src/presentation/screen/__tests__/use_smile_id_capture_screen.test.tsx +182 -18
- package/src/presentation/screen/__tests__/use_smile_id_document_back_instructions.test.tsx +1 -1
- package/src/presentation/screen/__tests__/use_smile_id_preview_screen.test.tsx +10 -40
- package/src/presentation/screen/helpers/__tests__/use_capture_orientation_lock.test.tsx +212 -0
- package/src/presentation/screen/helpers/capture_screen_helpers.ts +1 -0
- package/src/presentation/screen/helpers/capture_ui_state.ts +27 -27
- package/src/presentation/screen/helpers/ess_turn_haptics.ts +9 -9
- package/src/presentation/screen/helpers/instructions_screen_helpers.ts +7 -2
- package/src/presentation/screen/helpers/scan_state_to_overlay_state.ts +16 -13
- package/src/presentation/screen/helpers/use_capture_orientation_lock.ts +69 -7
- package/src/presentation/screen/use_smile_id_capture_screen.tsx +280 -54
- package/src/presentation/screen/use_smile_id_consent_screen.tsx +16 -5
- package/src/presentation/screen/use_smile_id_document_back_instructions.tsx +14 -23
- package/src/presentation/screen/use_smile_id_document_preview_screen.tsx +33 -23
- package/src/presentation/screen/use_smile_id_instructions_screen.tsx +4 -0
- package/src/presentation/screen/use_smile_id_preview_screen.tsx +21 -53
- package/src/presentation/screen/use_smile_id_processing_screen.tsx +8 -8
- package/src/presentation/theme/theme.ts +21 -19
- package/src/presentation/utils/__tests__/locale_utils.test.ts +46 -5
- package/src/presentation/utils/force_max_brightness.tsx +4 -4
- package/src/presentation/utils/locale_utils.ts +13 -4
- package/src/testing/__tests__/fake_face_analyzer.test.ts +42 -0
- package/src/testing/__tests__/scenario_expectations.test.ts +110 -0
- package/src/testing/__tests__/scenario_loader.test.ts +64 -0
- package/src/testing/fake_face_analyzer.ts +82 -0
- package/src/testing/index.ts +15 -0
- package/src/testing/scenario_expectations.ts +87 -0
- package/src/testing/scenario_loader.ts +83 -0
- package/src/testing/scripted_scan_results.ts +66 -0
- package/dist/camera/frame_processor_plugin.d.ts +0 -28
- package/dist/camera/frame_processor_plugin.d.ts.map +0 -1
- package/dist/camera/frame_processor_plugin.js +0 -21
- package/dist/camera/frame_processor_plugin.js.map +0 -1
- package/dist/camera/use_smile_id_frame_processor.d.ts +0 -38
- package/dist/camera/use_smile_id_frame_processor.d.ts.map +0 -1
- package/dist/camera/use_smile_id_frame_processor.js +0 -2
- package/dist/camera/use_smile_id_frame_processor.js.map +0 -1
- package/dist/presentation/components/use_smile_id_document_frame_glyph.d.ts +0 -17
- package/dist/presentation/components/use_smile_id_document_frame_glyph.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_document_frame_glyph.js +0 -17
- package/dist/presentation/components/use_smile_id_document_frame_glyph.js.map +0 -1
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_animation.d.ts +0 -24
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_animation.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_animation.js +0 -91
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_animation.js.map +0 -1
- package/dist/presentation/components/use_smile_id_face_silhouette_overlay.d.ts +0 -15
- package/dist/presentation/components/use_smile_id_face_silhouette_overlay.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_face_silhouette_overlay.js +0 -19
- package/dist/presentation/components/use_smile_id_face_silhouette_overlay.js.map +0 -1
- package/dist/presentation/components/use_smile_id_instruction_card.d.ts +0 -31
- package/dist/presentation/components/use_smile_id_instruction_card.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_instruction_card.js +0 -43
- package/dist/presentation/components/use_smile_id_instruction_card.js.map +0 -1
- package/dist/presentation/screen/helpers/use_document_orientation_lock.d.ts +0 -24
- package/dist/presentation/screen/helpers/use_document_orientation_lock.d.ts.map +0 -1
- package/dist/presentation/screen/helpers/use_document_orientation_lock.js +0 -47
- package/dist/presentation/screen/helpers/use_document_orientation_lock.js.map +0 -1
- package/src/presentation/components/use_smile_id_document_frame_glyph.tsx +0 -162
- package/src/presentation/components/use_smile_id_face_silhouette_overlay.tsx +0 -27
|
@@ -69,7 +69,7 @@ const sharedTypography = {
|
|
|
69
69
|
cardHeading: {
|
|
70
70
|
fontFamily: dmSans("800"),
|
|
71
71
|
fontSize: 20,
|
|
72
|
-
lineHeight:
|
|
72
|
+
lineHeight: 25.5,
|
|
73
73
|
fontWeight: "800",
|
|
74
74
|
letterSpacing: -0.425,
|
|
75
75
|
},
|
|
@@ -130,17 +130,17 @@ export const defaultLightTheme = {
|
|
|
130
130
|
accent: "#4D88FF",
|
|
131
131
|
background: "#F9FAFB",
|
|
132
132
|
cardBackground: "#FFFFFF",
|
|
133
|
-
instructionCardBackground: "#
|
|
133
|
+
instructionCardBackground: "#F9F0E7",
|
|
134
134
|
titleText: "#21232C",
|
|
135
135
|
cardText: "#5E646E",
|
|
136
136
|
disabledBackground: "#E4E7EC",
|
|
137
137
|
disabledForeground: "#98A2B3",
|
|
138
138
|
stroke: "#EAECF0",
|
|
139
|
-
warningFill: "#
|
|
140
|
-
warningIcon: "#
|
|
141
|
-
warningStroke: "#
|
|
142
|
-
successFill: "#
|
|
143
|
-
successIcon: "#
|
|
139
|
+
warningFill: "#EF43431A", // warning red @10%
|
|
140
|
+
warningIcon: "#EF4343",
|
|
141
|
+
warningStroke: "#EF43434D", // warning red @30%
|
|
142
|
+
successFill: "#00C8531A", // success green @10%
|
|
143
|
+
successIcon: "#00C853",
|
|
144
144
|
captureOverlayBackground: "#FFFFFFE5",
|
|
145
145
|
documentOverlayScrim: "#00000066", // black @40% — surround dim outside the frame
|
|
146
146
|
captureOverlayStroke: "#151F72",
|
|
@@ -151,8 +151,9 @@ export const defaultLightTheme = {
|
|
|
151
151
|
ovalActive: "#2CC05C",
|
|
152
152
|
ovalWarning: "#EF4343",
|
|
153
153
|
ovalDirectionalIndicator: "#EF4343",
|
|
154
|
-
// Preview
|
|
155
|
-
//
|
|
154
|
+
// Preview accept/reject tokens are theme-static (same in dark) so the
|
|
155
|
+
// review affordances read identically across themes; the page surface
|
|
156
|
+
// (`captureReviewBackground`) follows the active theme's background.
|
|
156
157
|
previewAcceptBackground: "#04B04A1A", // 10% green
|
|
157
158
|
previewAcceptIcon: "#12B76A",
|
|
158
159
|
previewAcceptBorder: "#04B04A4D", // 30% green
|
|
@@ -163,7 +164,7 @@ export const defaultLightTheme = {
|
|
|
163
164
|
submittingIndicator: "#2CC05C",
|
|
164
165
|
cardShadow: "#0000001A", // black @10%
|
|
165
166
|
backButtonBorder: "#FFFFFF1A", // white @10% rim on the dark fill
|
|
166
|
-
smileIdYellow: "#
|
|
167
|
+
smileIdYellow: "#FDB515",
|
|
167
168
|
offBlack: "#2D2B2A",
|
|
168
169
|
offWhite: "#F9F0E7",
|
|
169
170
|
},
|
|
@@ -187,11 +188,11 @@ export const defaultDarkTheme = {
|
|
|
187
188
|
disabledForeground: "#667085",
|
|
188
189
|
// 15% alpha — divider stroke on dark surfaces.
|
|
189
190
|
stroke: "#EAECF026",
|
|
190
|
-
warningFill: "#
|
|
191
|
-
warningIcon: "#
|
|
192
|
-
warningStroke: "#
|
|
193
|
-
successFill: "#
|
|
194
|
-
successIcon: "#
|
|
191
|
+
warningFill: "#EA2D2D",
|
|
192
|
+
warningIcon: "#FFFFFF",
|
|
193
|
+
warningStroke: "#9F0000",
|
|
194
|
+
successFill: "#00E676",
|
|
195
|
+
successIcon: "#FFFFFF",
|
|
195
196
|
captureOverlayBackground: "#FFFFFFE5",
|
|
196
197
|
documentOverlayScrim: "#00000066", // black @40% — surround dim outside the frame (identical in dark)
|
|
197
198
|
captureOverlayStroke: "#4D88FF",
|
|
@@ -202,18 +203,19 @@ export const defaultDarkTheme = {
|
|
|
202
203
|
ovalActive: "#2CC05C",
|
|
203
204
|
ovalWarning: "#EF4343",
|
|
204
205
|
ovalDirectionalIndicator: "#EF4343",
|
|
205
|
-
//
|
|
206
|
+
// Accept/reject affordances are theme-static (match light); the page
|
|
207
|
+
// surface behind them follows the dark background so cards read on-theme.
|
|
206
208
|
previewAcceptBackground: "#04B04A1A", // 10% green
|
|
207
209
|
previewAcceptIcon: "#12B76A",
|
|
208
210
|
previewAcceptBorder: "#04B04A4D", // 30% green
|
|
209
211
|
previewRejectBackground: "#F8FAFC",
|
|
210
212
|
previewRejectIcon: "#90A1B9",
|
|
211
213
|
previewRejectBorder: "#E2E8F0",
|
|
212
|
-
captureReviewBackground: "#
|
|
214
|
+
captureReviewBackground: "#1A1C23",
|
|
213
215
|
submittingIndicator: "#2CC05C",
|
|
214
216
|
cardShadow: "#0000001A", // black @10%
|
|
215
217
|
backButtonBorder: "#0000001A", // black @10% rim on the light fill
|
|
216
|
-
smileIdYellow: "#
|
|
218
|
+
smileIdYellow: "#FDB515",
|
|
217
219
|
offBlack: "#F9F0E7",
|
|
218
220
|
offWhite: "#2D2B2A",
|
|
219
221
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/presentation/theme/theme.ts"],"names":[],"mappings":"AA+GA,4EAA4E;AAC5E,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC;AAE5C;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAyC;IACtE,KAAK,EAAE,gBAAgB;IACvB,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,iBAAiB;IACxB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,kBAAkB;CAC1B,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAkB,EAClB,MAA4B;IAE5B,OAAO,UAAU,KAAK,mBAAmB;QACvC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC;QAC5B,CAAC,CAAC,UAAU,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,IAA0B,EAC1B,UAAkB;IAElB,MAAM,KAAK,GAAG,CACZ,KAA6B,EACL,EAAE,CAAC,CAAC;QAC5B,GAAG,KAAK;QACR,UAAU,EAAE,iBAAiB,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC;KAC5D,CAAC,CAAC;IACH,OAAO;QACL,UAAU;QACV,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;QACpC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;QAC1C,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;QAClC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;QACpC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;QAChC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;QACtC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACtB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1B,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;KACzC,CAAC;AACJ,CAAC;AA6BD,MAAM,MAAM,GAAG,CAAC,MAA4B,EAAU,EAAE,CACtD,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAE7B,MAAM,gBAAgB,GAAyB;IAC7C,UAAU,EAAE,mBAAmB;IAC/B,WAAW,EAAE;QACX,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC;QACzB,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,CAAC,GAAG;KACpB;IACD,cAAc,EAAE;QACd,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC;QACzB,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,KAAK;KAClB;IACD,UAAU,EAAE;QACV,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC;QACzB,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,KAAK;KAClB;IACD,WAAW,EAAE;QACX,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC;QACzB,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/presentation/theme/theme.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,10 @@ export interface ForceMaxBrightnessProps {
|
|
|
2
2
|
/** Target brightness in the range 0.0–1.0. Defaults to 1.0 (max). */
|
|
3
3
|
readonly brightness?: number;
|
|
4
4
|
/**
|
|
5
|
-
* When false the component is a no-op. Defaults to true.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* When false the component is a no-op. Defaults to true. Every capture
|
|
6
|
+
* screen (selfie and document) mounts this enabled so the preview always
|
|
7
|
+
* runs at full brightness with the screen kept awake for the duration of
|
|
8
|
+
* the capture.
|
|
9
9
|
*/
|
|
10
10
|
readonly enabled?: boolean;
|
|
11
11
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { GlobalPrivacyControl } from "../../core/models/global_privacy_control";
|
|
1
2
|
/**
|
|
2
3
|
* Returns the device's resolved BCP-47 locale tag (e.g. `"en-US"`).
|
|
3
4
|
*
|
|
@@ -16,10 +17,15 @@ export declare function getDeviceLocale(): string;
|
|
|
16
17
|
*/
|
|
17
18
|
export declare function isDeviceLocaleInEU(locale?: string): boolean;
|
|
18
19
|
/**
|
|
19
|
-
* Returns the default consent checkbox state
|
|
20
|
+
* Returns the default consent checkbox state for the partner-declared
|
|
21
|
+
* `GlobalPrivacyControl` posture.
|
|
20
22
|
*
|
|
21
|
-
* -
|
|
22
|
-
* -
|
|
23
|
+
* - `GlobalPrivacyControl.OptOut` (default): ticked (`true`) universally —
|
|
24
|
+
* the opt-out layout is enforced for every session and the device region
|
|
25
|
+
* is never consulted.
|
|
26
|
+
* - `GlobalPrivacyControl.OptIn`: legacy regional mechanics — EU locales
|
|
27
|
+
* start unticked (`false`, explicit opt-in per GDPR), everywhere else
|
|
28
|
+
* starts ticked (`true`).
|
|
23
29
|
*/
|
|
24
|
-
export declare function getDefaultConsentState(locale?: string): boolean;
|
|
30
|
+
export declare function getDefaultConsentState(globalPrivacyControl?: GlobalPrivacyControl, locale?: string): boolean;
|
|
25
31
|
//# sourceMappingURL=locale_utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locale_utils.d.ts","sourceRoot":"","sources":["../../../src/presentation/utils/locale_utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"locale_utils.d.ts","sourceRoot":"","sources":["../../../src/presentation/utils/locale_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AA+BhF;;;;;;;GAOG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAMxC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,GAAE,MAA0B,GACjC,OAAO,CAGT;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,oBAAoB,GAAE,oBAAkD,EACxE,MAAM,GAAE,MAA0B,GACjC,OAAO,CAIT"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { GlobalPrivacyControl } from "../../core/models/global_privacy_control";
|
|
1
2
|
const EU_COUNTRY_CODES = new Set([
|
|
2
3
|
"AT",
|
|
3
4
|
"BE",
|
|
@@ -55,12 +56,19 @@ export function isDeviceLocaleInEU(locale = getDeviceLocale()) {
|
|
|
55
56
|
return country !== undefined && EU_COUNTRY_CODES.has(country);
|
|
56
57
|
}
|
|
57
58
|
/**
|
|
58
|
-
* Returns the default consent checkbox state
|
|
59
|
+
* Returns the default consent checkbox state for the partner-declared
|
|
60
|
+
* `GlobalPrivacyControl` posture.
|
|
59
61
|
*
|
|
60
|
-
* -
|
|
61
|
-
* -
|
|
62
|
+
* - `GlobalPrivacyControl.OptOut` (default): ticked (`true`) universally —
|
|
63
|
+
* the opt-out layout is enforced for every session and the device region
|
|
64
|
+
* is never consulted.
|
|
65
|
+
* - `GlobalPrivacyControl.OptIn`: legacy regional mechanics — EU locales
|
|
66
|
+
* start unticked (`false`, explicit opt-in per GDPR), everywhere else
|
|
67
|
+
* starts ticked (`true`).
|
|
62
68
|
*/
|
|
63
|
-
export function getDefaultConsentState(locale = getDeviceLocale()) {
|
|
64
|
-
return
|
|
69
|
+
export function getDefaultConsentState(globalPrivacyControl = GlobalPrivacyControl.OptOut, locale = getDeviceLocale()) {
|
|
70
|
+
return globalPrivacyControl === GlobalPrivacyControl.OptOut
|
|
71
|
+
? true
|
|
72
|
+
: !isDeviceLocaleInEU(locale);
|
|
65
73
|
}
|
|
66
74
|
//# sourceMappingURL=locale_utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locale_utils.js","sourceRoot":"","sources":["../../../src/presentation/utils/locale_utils.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC;IACpD,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;CACL,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAAiB,eAAe,EAAE;IAElC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;IACpD,OAAO,OAAO,KAAK,SAAS,IAAI,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAChE,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"locale_utils.js","sourceRoot":"","sources":["../../../src/presentation/utils/locale_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC;IACpD,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;CACL,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAAiB,eAAe,EAAE;IAElC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;IACpD,OAAO,OAAO,KAAK,SAAS,IAAI,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CACpC,uBAA6C,oBAAoB,CAAC,MAAM,EACxE,SAAiB,eAAe,EAAE;IAElC,OAAO,oBAAoB,KAAK,oBAAoB,CAAC,MAAM;QACzD,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { FaceAnalyzer } from "@smileid/usesmileid_platform_interface";
|
|
2
|
+
import { AnalyzerFactoryKey } from "@smileid/usesmileid_bridge";
|
|
3
|
+
/**
|
|
4
|
+
* Deterministic fake face analyzer for scripted-scenario E2E runs. Exported
|
|
5
|
+
* only behind the `@smileid/usesmileid/testing` subpath so it cannot leak into
|
|
6
|
+
* partner production bundles.
|
|
7
|
+
*
|
|
8
|
+
* Per-frame detection runs in the provider's native frame-processor plugin
|
|
9
|
+
* (pixels never cross into JS), so `frameProcessorPluginName` points at a
|
|
10
|
+
* plugin that does not exist — the capture screen surfaces that as its
|
|
11
|
+
* camera-unavailable state. This fake covers the DSL registration seam and the
|
|
12
|
+
* capture-free flows; capture progression is driven via `onResult` instead.
|
|
13
|
+
*/
|
|
14
|
+
export interface ScriptedScenarioStep {
|
|
15
|
+
readonly emit: string;
|
|
16
|
+
readonly holdFrames?: number;
|
|
17
|
+
}
|
|
18
|
+
export interface ScriptedScenario {
|
|
19
|
+
readonly name: string;
|
|
20
|
+
readonly captureType: string;
|
|
21
|
+
readonly steps: readonly ScriptedScenarioStep[];
|
|
22
|
+
}
|
|
23
|
+
export declare class FakeFaceAnalyzer implements FaceAnalyzer {
|
|
24
|
+
private readonly scenario;
|
|
25
|
+
readonly kind: "face";
|
|
26
|
+
readonly key: AnalyzerFactoryKey;
|
|
27
|
+
readonly frameProcessorPluginName = "e2e-fake-face";
|
|
28
|
+
configureCallCount: number;
|
|
29
|
+
resetCallCount: number;
|
|
30
|
+
flushCallCount: number;
|
|
31
|
+
closeCallCount: number;
|
|
32
|
+
private stepIndex;
|
|
33
|
+
private framesLeftInStep;
|
|
34
|
+
constructor(scenario: ScriptedScenario);
|
|
35
|
+
/** Frame-by-frame cursor; the final step repeats indefinitely. */
|
|
36
|
+
nextEmit(): string;
|
|
37
|
+
configure(): Promise<void>;
|
|
38
|
+
reset(): Promise<void>;
|
|
39
|
+
flush(): Promise<void>;
|
|
40
|
+
close(): Promise<void>;
|
|
41
|
+
}
|
|
42
|
+
export declare function makeFakeFaceAnalyzer(scenario: ScriptedScenario): FakeFaceAnalyzer;
|
|
43
|
+
//# sourceMappingURL=fake_face_analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fake_face_analyzer.d.ts","sourceRoot":"","sources":["../../src/testing/fake_face_analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACjD;AAED,qBAAa,gBAAiB,YAAW,YAAY;IAavC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAZrC,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;IAChC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAgC;IAChE,QAAQ,CAAC,wBAAwB,mBAAmB;IAEpD,kBAAkB,SAAK;IACvB,cAAc,SAAK;IACnB,cAAc,SAAK;IACnB,cAAc,SAAK;IAEnB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,gBAAgB,CAAS;gBAEJ,QAAQ,EAAE,gBAAgB;IAIvD,kEAAkE;IAClE,QAAQ,IAAI,MAAM;IAalB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAK1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAIvB;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,gBAAgB,GACzB,gBAAgB,CAElB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { AnalyzerFactoryKey } from "@smileid/usesmileid_bridge";
|
|
2
|
+
export class FakeFaceAnalyzer {
|
|
3
|
+
scenario;
|
|
4
|
+
kind = "face";
|
|
5
|
+
key = AnalyzerFactoryKey.MLKitFace;
|
|
6
|
+
frameProcessorPluginName = "e2e-fake-face";
|
|
7
|
+
configureCallCount = 0;
|
|
8
|
+
resetCallCount = 0;
|
|
9
|
+
flushCallCount = 0;
|
|
10
|
+
closeCallCount = 0;
|
|
11
|
+
stepIndex = 0;
|
|
12
|
+
framesLeftInStep;
|
|
13
|
+
constructor(scenario) {
|
|
14
|
+
this.scenario = scenario;
|
|
15
|
+
this.framesLeftInStep = scenario.steps[0]?.holdFrames ?? 1;
|
|
16
|
+
}
|
|
17
|
+
/** Frame-by-frame cursor; the final step repeats indefinitely. */
|
|
18
|
+
nextEmit() {
|
|
19
|
+
const steps = this.scenario.steps;
|
|
20
|
+
const step = steps[this.stepIndex];
|
|
21
|
+
if (step === undefined)
|
|
22
|
+
return "noFace";
|
|
23
|
+
if (this.stepIndex === steps.length - 1)
|
|
24
|
+
return step.emit;
|
|
25
|
+
this.framesLeftInStep -= 1;
|
|
26
|
+
if (this.framesLeftInStep <= 0) {
|
|
27
|
+
this.stepIndex += 1;
|
|
28
|
+
this.framesLeftInStep = steps[this.stepIndex]?.holdFrames ?? 1;
|
|
29
|
+
}
|
|
30
|
+
return step.emit;
|
|
31
|
+
}
|
|
32
|
+
configure() {
|
|
33
|
+
this.configureCallCount += 1;
|
|
34
|
+
return Promise.resolve();
|
|
35
|
+
}
|
|
36
|
+
reset() {
|
|
37
|
+
this.resetCallCount += 1;
|
|
38
|
+
return Promise.resolve();
|
|
39
|
+
}
|
|
40
|
+
flush() {
|
|
41
|
+
this.flushCallCount += 1;
|
|
42
|
+
return Promise.resolve();
|
|
43
|
+
}
|
|
44
|
+
close() {
|
|
45
|
+
this.closeCallCount += 1;
|
|
46
|
+
return Promise.resolve();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export function makeFakeFaceAnalyzer(scenario) {
|
|
50
|
+
return new FakeFaceAnalyzer(scenario);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=fake_face_analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fake_face_analyzer.js","sourceRoot":"","sources":["../../src/testing/fake_face_analyzer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAwBhE,MAAM,OAAO,gBAAgB;IAaE;IAZpB,IAAI,GAAG,MAAe,CAAC;IACvB,GAAG,GAAuB,kBAAkB,CAAC,SAAS,CAAC;IACvD,wBAAwB,GAAG,eAAe,CAAC;IAEpD,kBAAkB,GAAG,CAAC,CAAC;IACvB,cAAc,GAAG,CAAC,CAAC;IACnB,cAAc,GAAG,CAAC,CAAC;IACnB,cAAc,GAAG,CAAC,CAAC;IAEX,SAAS,GAAG,CAAC,CAAC;IACd,gBAAgB,CAAS;IAEjC,YAA6B,QAA0B;QAA1B,aAAQ,GAAR,QAAQ,CAAkB;QACrD,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,kEAAkE;IAClE,QAAQ;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QACxC,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC;QAC1D,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,IAAI,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,SAAS;QACP,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC;QAC7B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;QACzB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;QACzB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;QACzB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,UAAU,oBAAoB,CAClC,QAA0B;IAE1B,OAAO,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { FakeFaceAnalyzer, makeFakeFaceAnalyzer, type ScriptedScenario, type ScriptedScenarioStep, } from "./fake_face_analyzer";
|
|
2
|
+
export { scriptedFaceScanResults } from "./scripted_scan_results";
|
|
3
|
+
export { parseScriptedScenario } from "./scenario_loader";
|
|
4
|
+
export { type ScenarioExpectations, parseScenarioExpectations, expectSubsetInOrder, } from "./scenario_expectations";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EACL,KAAK,oBAAoB,EACzB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Test-support entry — exported behind the `@smileid/usesmileid/testing`
|
|
2
|
+
// subpath only. Nothing here may be re-exported from the main index.
|
|
3
|
+
export { FakeFaceAnalyzer, makeFakeFaceAnalyzer, } from "./fake_face_analyzer";
|
|
4
|
+
export { scriptedFaceScanResults } from "./scripted_scan_results";
|
|
5
|
+
export { parseScriptedScenario } from "./scenario_loader";
|
|
6
|
+
export { parseScenarioExpectations, expectSubsetInOrder, } from "./scenario_expectations";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,qEAAqE;AACrE,OAAO,EACL,gBAAgB,EAChB,oBAAoB,GAGrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAEL,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capture-scoped expectations from the shared `e2e-scenarios` schema's `expected`
|
|
3
|
+
* block (screen + analytics-event names, terminal state). Framework-agnostic (no
|
|
4
|
+
* vitest/jest import) so a partner app's own e2e runner can reuse it.
|
|
5
|
+
*/
|
|
6
|
+
export interface ScenarioExpectations {
|
|
7
|
+
/** Ordered `screen_viewed` sequence for the canonical consent-first flow. */
|
|
8
|
+
readonly screens: readonly string[];
|
|
9
|
+
/** Ordered analytics event types that must fire (subset-in-order). */
|
|
10
|
+
readonly events: readonly string[];
|
|
11
|
+
/** How the capture session ends. */
|
|
12
|
+
readonly terminal?: "submitted" | "timeout" | "unsatisfied";
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Extracts and validates the `expected` block from an already-parsed shared
|
|
16
|
+
* scenario JSON object. Returns empty screen/event arrays when the block is
|
|
17
|
+
* absent (older scenarios), and throws on a malformed block so drift fails
|
|
18
|
+
* loudly rather than silently weakening the contract.
|
|
19
|
+
*/
|
|
20
|
+
export declare function parseScenarioExpectations(raw: unknown): ScenarioExpectations;
|
|
21
|
+
/**
|
|
22
|
+
* Asserts that every element of [expected] appears in [recorded] in the same
|
|
23
|
+
* relative order (a minimal ordered-subset match — unlisted items may
|
|
24
|
+
* interleave, exact-match is deliberately NOT required). Throws a descriptive
|
|
25
|
+
* Error on failure so it works under any test runner.
|
|
26
|
+
*/
|
|
27
|
+
export declare function expectSubsetInOrder(recorded: readonly string[], expected: readonly string[], label?: string): void;
|
|
28
|
+
//# sourceMappingURL=scenario_expectations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scenario_expectations.d.ts","sourceRoot":"","sources":["../../src/testing/scenario_expectations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,oCAAoC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,aAAa,CAAC;CAC7D;AAQD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,CA4B5E;AAUD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,KAAK,SAAa,GACjB,IAAI,CAYN"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
const TERMINALS = new Set([
|
|
2
|
+
"submitted",
|
|
3
|
+
"timeout",
|
|
4
|
+
"unsatisfied",
|
|
5
|
+
]);
|
|
6
|
+
/**
|
|
7
|
+
* Extracts and validates the `expected` block from an already-parsed shared
|
|
8
|
+
* scenario JSON object. Returns empty screen/event arrays when the block is
|
|
9
|
+
* absent (older scenarios), and throws on a malformed block so drift fails
|
|
10
|
+
* loudly rather than silently weakening the contract.
|
|
11
|
+
*/
|
|
12
|
+
export function parseScenarioExpectations(raw) {
|
|
13
|
+
if (typeof raw !== "object" || raw === null) {
|
|
14
|
+
throw new Error("scenario must be a JSON object");
|
|
15
|
+
}
|
|
16
|
+
const expected = raw.expected;
|
|
17
|
+
if (expected === undefined) {
|
|
18
|
+
return { screens: [], events: [] };
|
|
19
|
+
}
|
|
20
|
+
if (typeof expected !== "object" || expected === null) {
|
|
21
|
+
throw new Error("scenario.expected must be an object when present");
|
|
22
|
+
}
|
|
23
|
+
const record = expected;
|
|
24
|
+
const screens = readStringArray(record.screens, "scenario.expected.screens");
|
|
25
|
+
const events = readStringArray(record.events, "scenario.expected.events");
|
|
26
|
+
const terminal = record.terminal;
|
|
27
|
+
if (terminal === undefined) {
|
|
28
|
+
return { screens, events };
|
|
29
|
+
}
|
|
30
|
+
if (typeof terminal !== "string" || !TERMINALS.has(terminal)) {
|
|
31
|
+
throw new Error(`scenario.expected.terminal must be one of ${[...TERMINALS].join(", ")}, got ${String(terminal)}`);
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
screens,
|
|
35
|
+
events,
|
|
36
|
+
terminal: terminal,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function readStringArray(value, label) {
|
|
40
|
+
if (value === undefined)
|
|
41
|
+
return [];
|
|
42
|
+
if (!Array.isArray(value) || value.some((item) => typeof item !== "string")) {
|
|
43
|
+
throw new Error(`${label} must be an array of strings`);
|
|
44
|
+
}
|
|
45
|
+
return value;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Asserts that every element of [expected] appears in [recorded] in the same
|
|
49
|
+
* relative order (a minimal ordered-subset match — unlisted items may
|
|
50
|
+
* interleave, exact-match is deliberately NOT required). Throws a descriptive
|
|
51
|
+
* Error on failure so it works under any test runner.
|
|
52
|
+
*/
|
|
53
|
+
export function expectSubsetInOrder(recorded, expected, label = "sequence") {
|
|
54
|
+
let cursor = 0;
|
|
55
|
+
for (const item of recorded) {
|
|
56
|
+
if (cursor < expected.length && item === expected[cursor])
|
|
57
|
+
cursor += 1;
|
|
58
|
+
}
|
|
59
|
+
if (cursor !== expected.length) {
|
|
60
|
+
throw new Error(`${label}: expected [${expected
|
|
61
|
+
.slice(cursor)
|
|
62
|
+
.join(", ")}] to appear in order within [${recorded.join(", ")}]`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=scenario_expectations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scenario_expectations.js","sourceRoot":"","sources":["../../src/testing/scenario_expectations.ts"],"names":[],"mappings":"AAcA,MAAM,SAAS,GAAwB,IAAI,GAAG,CAAC;IAC7C,WAAW;IACX,SAAS;IACT,aAAa;CACd,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,GAAY;IACpD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,QAAQ,GAAI,GAA+B,CAAC,QAAQ,CAAC;IAC3D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,MAAM,GAAG,QAAmC,CAAC;IACnD,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CACb,6CAA6C,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,QAAQ,CAAC,EAAE,CAClG,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO;QACP,MAAM;QACN,QAAQ,EAAE,QAAmD;KAC9D,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAc,EAAE,KAAa;IACpD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,8BAA8B,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,KAAiB,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAA2B,EAC3B,QAA2B,EAC3B,KAAK,GAAG,UAAU;IAElB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,IAAI,KAAK,QAAQ,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,eAAe,QAAQ;aAC5B,KAAK,CAAC,MAAM,CAAC;aACb,IAAI,CAAC,IAAI,CAAC,gCAAgC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACpE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ScriptedScenario } from "./fake_face_analyzer";
|
|
2
|
+
/**
|
|
3
|
+
* Validates a parsed shared-scenario JSON object and returns the typed
|
|
4
|
+
* [ScriptedScenario]. Kept I/O-free (takes an already-parsed object) so the
|
|
5
|
+
* `@smileid/usesmileid/testing` subpath stays environment-agnostic — the caller
|
|
6
|
+
* owns how the JSON is read. Throws with a specific message on any shape drift
|
|
7
|
+
* so a malformed or vocabulary-drifted script fails loudly at load time instead
|
|
8
|
+
* of producing a misleading capture sequence.
|
|
9
|
+
*/
|
|
10
|
+
export declare function parseScriptedScenario(raw: unknown): ScriptedScenario;
|
|
11
|
+
//# sourceMappingURL=scenario_loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scenario_loader.d.ts","sourceRoot":"","sources":["../../src/testing/scenario_loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAEjB,MAAM,sBAAsB,CAAC;AAuB9B;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAgDpE"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Emission vocabulary of the shared `e2e-scenarios` schema (`schema.json` in
|
|
3
|
+
* every repo's scenario folder). A step whose `emit` is outside this set is a
|
|
4
|
+
* drift bug — the loader rejects it rather than letting the fake silently treat
|
|
5
|
+
* it as "no detection".
|
|
6
|
+
*/
|
|
7
|
+
const KNOWN_EMITS = new Set([
|
|
8
|
+
"noFace",
|
|
9
|
+
"faceTooFar",
|
|
10
|
+
"faceCentered",
|
|
11
|
+
"headTurnLeft",
|
|
12
|
+
"headTurnRight",
|
|
13
|
+
"headTurnUp",
|
|
14
|
+
"satisfied",
|
|
15
|
+
"noDocument",
|
|
16
|
+
"documentFound",
|
|
17
|
+
"documentUnstable",
|
|
18
|
+
]);
|
|
19
|
+
const CAPTURE_TYPES = new Set(["selfie", "document"]);
|
|
20
|
+
/**
|
|
21
|
+
* Validates a parsed shared-scenario JSON object and returns the typed
|
|
22
|
+
* [ScriptedScenario]. Kept I/O-free (takes an already-parsed object) so the
|
|
23
|
+
* `@smileid/usesmileid/testing` subpath stays environment-agnostic — the caller
|
|
24
|
+
* owns how the JSON is read. Throws with a specific message on any shape drift
|
|
25
|
+
* so a malformed or vocabulary-drifted script fails loudly at load time instead
|
|
26
|
+
* of producing a misleading capture sequence.
|
|
27
|
+
*/
|
|
28
|
+
export function parseScriptedScenario(raw) {
|
|
29
|
+
if (typeof raw !== "object" || raw === null) {
|
|
30
|
+
throw new Error("scenario must be a JSON object");
|
|
31
|
+
}
|
|
32
|
+
const record = raw;
|
|
33
|
+
const name = record.name;
|
|
34
|
+
if (typeof name !== "string" || name.length === 0) {
|
|
35
|
+
throw new Error("scenario.name must be a non-empty string");
|
|
36
|
+
}
|
|
37
|
+
const captureType = record.captureType;
|
|
38
|
+
if (typeof captureType !== "string" || !CAPTURE_TYPES.has(captureType)) {
|
|
39
|
+
throw new Error(`scenario.captureType must be one of ${[...CAPTURE_TYPES].join(", ")}, got ${String(captureType)}`);
|
|
40
|
+
}
|
|
41
|
+
if (!Array.isArray(record.steps) || record.steps.length === 0) {
|
|
42
|
+
throw new Error(`scenario.steps must be a non-empty array in ${name}`);
|
|
43
|
+
}
|
|
44
|
+
const steps = record.steps.map((step, index) => {
|
|
45
|
+
if (typeof step !== "object" || step === null) {
|
|
46
|
+
throw new Error(`scenario.steps[${index}] must be an object in ${name}`);
|
|
47
|
+
}
|
|
48
|
+
const stepRecord = step;
|
|
49
|
+
const emit = stepRecord.emit;
|
|
50
|
+
if (typeof emit !== "string" || !KNOWN_EMITS.has(emit)) {
|
|
51
|
+
throw new Error(`scenario.steps[${index}].emit "${String(emit)}" is not a known emission in ${name}`);
|
|
52
|
+
}
|
|
53
|
+
const holdFrames = stepRecord.holdFrames;
|
|
54
|
+
if (holdFrames !== undefined &&
|
|
55
|
+
(typeof holdFrames !== "number" ||
|
|
56
|
+
!Number.isInteger(holdFrames) ||
|
|
57
|
+
holdFrames < 1)) {
|
|
58
|
+
throw new Error(`scenario.steps[${index}].holdFrames must be a positive integer in ${name}`);
|
|
59
|
+
}
|
|
60
|
+
return holdFrames === undefined ? { emit } : { emit, holdFrames };
|
|
61
|
+
});
|
|
62
|
+
return { name, captureType, steps };
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=scenario_loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scenario_loader.js","sourceRoot":"","sources":["../../src/testing/scenario_loader.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC;IAC/C,QAAQ;IACR,YAAY;IACZ,cAAc;IACd,cAAc;IACd,eAAe;IACf,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,eAAe;IACf,kBAAkB;CACnB,CAAC,CAAC;AAEH,MAAM,aAAa,GAAwB,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAE3E;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,MAAM,GAAG,GAA8B,CAAC;IAE9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACvC,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CACb,uCAAuC,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,WAAW,CAAC,EAAE,CACnG,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,+CAA+C,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,KAAK,GAA2B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACrE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,0BAA0B,IAAI,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,UAAU,GAAG,IAA+B,CAAC;QACnD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC7B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CACb,kBAAkB,KAAK,WAAW,MAAM,CAAC,IAAI,CAAC,gCAAgC,IAAI,EAAE,CACrF,CAAC;QACJ,CAAC;QACD,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACzC,IACE,UAAU,KAAK,SAAS;YACxB,CAAC,OAAO,UAAU,KAAK,QAAQ;gBAC7B,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC;gBAC7B,UAAU,GAAG,CAAC,CAAC,EACjB,CAAC;YACD,MAAM,IAAI,KAAK,CACb,kBAAkB,KAAK,8CAA8C,IAAI,EAAE,CAC5E,CAAC;QACJ,CAAC;QACD,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { FaceScanResult } from "@smileid/usesmileid_bridge";
|
|
2
|
+
import type { ScriptedScenario } from "./fake_face_analyzer";
|
|
3
|
+
/**
|
|
4
|
+
* Turns a shared E2E scenario into the `FaceScanResult` sequence a capture
|
|
5
|
+
* screen receives frame-by-frame, so a headless test can replay the shared
|
|
6
|
+
* script through the frame stream's `onResult` seam (per-frame detection is a
|
|
7
|
+
* native frame-processor concern; pixels never reach JS).
|
|
8
|
+
*
|
|
9
|
+
* `noFace` → `initial`; `faceTooFar` / `faceCentered` → `found`; the terminal
|
|
10
|
+
* `satisfied` → one `finished` result carrying a `selfie` event plus
|
|
11
|
+
* [livenessCount] `liveness` events at opaque `file://` URLs the screen never
|
|
12
|
+
* reads. Exported only behind the `@smileid/usesmileid/testing` subpath.
|
|
13
|
+
*/
|
|
14
|
+
export declare function scriptedFaceScanResults(scenario: ScriptedScenario, options?: {
|
|
15
|
+
readonly livenessCount?: number;
|
|
16
|
+
}): FaceScanResult[];
|
|
17
|
+
//# sourceMappingURL=scripted_scan_results.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripted_scan_results.d.ts","sourceRoot":"","sources":["../../src/testing/scripted_scan_results.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,cAAc,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,GAAE;IAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAO,GAChD,cAAc,EAAE,CAuBlB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { CaptureReadyEventKind, UseSmileIDScanStateType, } from "@smileid/usesmileid_bridge";
|
|
2
|
+
/**
|
|
3
|
+
* Turns a shared E2E scenario into the `FaceScanResult` sequence a capture
|
|
4
|
+
* screen receives frame-by-frame, so a headless test can replay the shared
|
|
5
|
+
* script through the frame stream's `onResult` seam (per-frame detection is a
|
|
6
|
+
* native frame-processor concern; pixels never reach JS).
|
|
7
|
+
*
|
|
8
|
+
* `noFace` → `initial`; `faceTooFar` / `faceCentered` → `found`; the terminal
|
|
9
|
+
* `satisfied` → one `finished` result carrying a `selfie` event plus
|
|
10
|
+
* [livenessCount] `liveness` events at opaque `file://` URLs the screen never
|
|
11
|
+
* reads. Exported only behind the `@smileid/usesmileid/testing` subpath.
|
|
12
|
+
*/
|
|
13
|
+
export function scriptedFaceScanResults(scenario, options = {}) {
|
|
14
|
+
const livenessCount = options.livenessCount ?? 2;
|
|
15
|
+
const output = { faces: [], brightness: 128 };
|
|
16
|
+
const results = [];
|
|
17
|
+
for (const step of scenario.steps) {
|
|
18
|
+
if (step.emit === "satisfied") {
|
|
19
|
+
results.push({
|
|
20
|
+
output,
|
|
21
|
+
state: { type: UseSmileIDScanStateType.Finished },
|
|
22
|
+
capturedEvents: captureEvents(livenessCount),
|
|
23
|
+
});
|
|
24
|
+
return results;
|
|
25
|
+
}
|
|
26
|
+
const type = step.emit === "noFace"
|
|
27
|
+
? UseSmileIDScanStateType.Initial
|
|
28
|
+
: UseSmileIDScanStateType.Found;
|
|
29
|
+
for (let frame = 0; frame < (step.holdFrames ?? 1); frame++) {
|
|
30
|
+
results.push({ output, state: { type }, capturedEvents: [] });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return results;
|
|
34
|
+
}
|
|
35
|
+
function captureEvents(livenessCount) {
|
|
36
|
+
const events = [
|
|
37
|
+
{
|
|
38
|
+
kind: CaptureReadyEventKind.Selfie,
|
|
39
|
+
captureIndex: 0,
|
|
40
|
+
url: "file://selfie-0.jpg",
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
for (let index = 1; index <= livenessCount; index++) {
|
|
44
|
+
events.push({
|
|
45
|
+
kind: CaptureReadyEventKind.Liveness,
|
|
46
|
+
captureIndex: index,
|
|
47
|
+
url: `file://liveness-${index}.jpg`,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return events;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=scripted_scan_results.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripted_scan_results.js","sourceRoot":"","sources":["../../src/testing/scripted_scan_results.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAOpC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAA0B,EAC1B,UAA+C,EAAE;IAEjD,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC;IACjD,MAAM,MAAM,GAA6B,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;IACxE,MAAM,OAAO,GAAqB,EAAE,CAAC;IAErC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM;gBACN,KAAK,EAAE,EAAE,IAAI,EAAE,uBAAuB,CAAC,QAAQ,EAAE;gBACjD,cAAc,EAAE,aAAa,CAAC,aAAa,CAAC;aAC7C,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,IAAI,GACR,IAAI,CAAC,IAAI,KAAK,QAAQ;YACpB,CAAC,CAAC,uBAAuB,CAAC,OAAO;YACjC,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC;QACpC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,aAAqB;IAC1C,MAAM,MAAM,GAAwB;QAClC;YACE,IAAI,EAAE,qBAAqB,CAAC,MAAM;YAClC,YAAY,EAAE,CAAC;YACf,GAAG,EAAE,qBAAqB;SAC3B;KACF,CAAC;IACF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,qBAAqB,CAAC,QAAQ;YACpC,YAAY,EAAE,KAAK;YACnB,GAAG,EAAE,mBAAmB,KAAK,MAAM;SACpC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|