@smileid/usesmileid 12.0.0-beta01 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -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/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 +6 -4
- package/dist/core/models/document_type.js.map +1 -1
- 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.js +1 -1
- 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/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 +16 -1
- package/dist/data/dsl/builder/retry_config_builder.d.ts.map +1 -1
- package/dist/data/dsl/builder/retry_config_builder.js +16 -1
- 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/util/retry_util.d.ts +1 -1
- package/dist/data/util/retry_util.d.ts.map +1 -1
- package/dist/data/util/retry_util.js +2 -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/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 +39 -0
- package/dist/metadata/builder_configuration.d.ts.map +1 -0
- package/dist/metadata/builder_configuration.js +34 -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 +48 -0
- package/dist/metadata/metadata_configuration_mappers.d.ts.map +1 -0
- package/dist/metadata/metadata_configuration_mappers.js +171 -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 +184 -12
- 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.map +1 -1
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.js +1 -3
- 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 +18 -3
- 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 +12 -0
- package/dist/presentation/flow/dsl/builder/config_builder.d.ts.map +1 -1
- package/dist/presentation/flow/dsl/builder/config_builder.js +12 -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 +111 -10
- package/dist/presentation/flow/dsl/builder/screens_builder.d.ts.map +1 -1
- package/dist/presentation/flow/dsl/builder/screens_builder.js +111 -10
- 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 +39 -4
- package/dist/presentation/flow/flow_navigation_manager.d.ts.map +1 -1
- package/dist/presentation/flow/flow_navigation_manager.js +141 -10
- 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 +73 -25
- 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 +36 -12
- package/dist/presentation/flow/screen/orchestrated_capture_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 -1
- 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/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/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.js +3 -0
- package/dist/presentation/screen/helpers/scan_state_to_overlay_state.js.map +1 -1
- package/dist/presentation/screen/use_smile_id_capture_screen.d.ts +17 -1
- package/dist/presentation/screen/use_smile_id_capture_screen.d.ts.map +1 -1
- package/dist/presentation/screen/use_smile_id_capture_screen.js +153 -18
- package/dist/presentation/screen/use_smile_id_capture_screen.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 +16 -11
- 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 -6
- package/dist/presentation/screen/use_smile_id_preview_screen.d.ts.map +1 -1
- package/dist/presentation/screen/use_smile_id_preview_screen.js +9 -8
- 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 +3 -2
- 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/package.json +26 -6
- package/src/__tests__/react_native_mock.tsx +8 -0
- package/src/camera/camera_defaults.ts +11 -9
- package/src/camera/orientation_degrees.ts +5 -6
- package/src/core/models/__tests__/document_type.test.ts +6 -4
- package/src/core/models/document_capture_mode.ts +27 -0
- package/src/core/models/document_type.ts +6 -4
- package/src/core/models/result.ts +9 -8
- 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 +1 -1
- 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 +222 -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/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 +22 -1
- 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/networking_factory.ts +14 -1
- package/src/data/repository/__tests__/network_retries.test.ts +117 -0
- package/src/data/repository/use_smile_id_repository_impl.ts +96 -9
- 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/util/__tests__/use_smile_id_token_decoder.test.ts +57 -1
- package/src/data/util/retry_util.ts +3 -2
- package/src/data/util/use_smile_id_token_decoder.ts +76 -28
- 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 +215 -0
- package/src/metadata/__tests__/metadata_configuration_objects.test.ts +85 -0
- package/src/metadata/__tests__/metadata_device_context.test.ts +147 -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 +18 -24
- package/src/metadata/builder_configuration.ts +63 -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 +234 -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 +195 -11
- package/src/presentation/assets/si_ess_animation_all_directions.json +1300 -286
- 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 +3 -4
- 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 +27 -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 +0 -3
- package/src/presentation/components/use_smile_id_guideline_thumbnail.tsx +131 -2
- package/src/presentation/components/use_smile_id_instructions_hero.tsx +100 -59
- package/src/presentation/components/use_smile_id_oval_border_palette.ts +7 -3
- package/src/presentation/flow/__tests__/document_flow_navigation.test.ts +200 -1
- package/src/presentation/flow/dsl/builder/config_builder.ts +14 -0
- package/src/presentation/flow/dsl/builder/ml_builder.ts +13 -4
- package/src/presentation/flow/dsl/builder/screens_builder.ts +111 -10
- 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 +179 -13
- package/src/presentation/flow/model/instruction_guideline.ts +6 -0
- package/src/presentation/flow/model/instructions_defaults.ts +103 -25
- package/src/presentation/flow/screen/orchestrated_capture_screen.tsx +43 -10
- package/src/presentation/flow/screen/orchestrated_instructions_screen.tsx +1 -0
- package/src/presentation/flow/screen/orchestrated_preview_screen.tsx +4 -2
- package/src/presentation/flow/screen/orchestrated_processing_screen.tsx +3 -3
- package/src/presentation/flow/validation/__tests__/job_type_validator.test.ts +64 -0
- package/src/presentation/flow/validation/job_type_validator.ts +24 -0
- package/src/presentation/screen/__tests__/instructions_screen_helpers.test.ts +15 -3
- package/src/presentation/screen/__tests__/use_smile_id_capture_screen.test.tsx +6 -4
- package/src/presentation/screen/helpers/capture_screen_helpers.ts +1 -0
- package/src/presentation/screen/helpers/instructions_screen_helpers.ts +7 -2
- package/src/presentation/screen/helpers/scan_state_to_overlay_state.ts +3 -0
- package/src/presentation/screen/use_smile_id_capture_screen.tsx +234 -36
- package/src/presentation/screen/use_smile_id_document_preview_screen.tsx +32 -22
- package/src/presentation/screen/use_smile_id_instructions_screen.tsx +4 -0
- package/src/presentation/screen/use_smile_id_preview_screen.tsx +9 -9
- package/src/presentation/screen/use_smile_id_processing_screen.tsx +7 -7
- package/src/presentation/theme/theme.ts +21 -19
- package/src/presentation/utils/force_max_brightness.tsx +4 -4
- 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_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
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export declare const PayloadCompressionConfig: {
|
|
2
|
+
/** 1 MiB. Binary MB is the locked cross-SDK unit. */
|
|
3
|
+
readonly bytesPerMB: number;
|
|
4
|
+
/** Primary compression goal for the raw bundle. */
|
|
5
|
+
readonly rawTarget: number;
|
|
6
|
+
/** Relaxed raw ceiling, accepted only if the projected encoded size still fits the cap. */
|
|
7
|
+
readonly rawFallback: number;
|
|
8
|
+
/** The real guardrail: projected base64-encoded body must stay under this (margin under 6 MB). */
|
|
9
|
+
readonly hardEncodedCap: number;
|
|
10
|
+
/** Rule A trigger: combined document images larger than this start the document sub-pass. */
|
|
11
|
+
readonly docCombinedTrigger: number;
|
|
12
|
+
/** Rule A sub-target: pull the combined documents under this (back first, then front). */
|
|
13
|
+
readonly docCombinedTarget: number;
|
|
14
|
+
/** Rule B trigger: a selfie larger than this marks a face-heavy job (faces compressed first). */
|
|
15
|
+
readonly selfieTrigger: number;
|
|
16
|
+
/** Minimum JPEG quality for face images (selfie + liveness) — higher penalty. Pending DS sign-off. */
|
|
17
|
+
readonly faceMinQ: 0.45;
|
|
18
|
+
/** Minimum JPEG quality for document images — preserves OCR / MRZ. Pending DS sign-off. */
|
|
19
|
+
readonly docMinQ: 0.7;
|
|
20
|
+
/**
|
|
21
|
+
* Absolute JPEG-quality floor for the hard-guarantee pass. When a bundle is still over
|
|
22
|
+
* `rawFallback` after every image has hit its per-type floor (`faceMinQ` / `docMinQ`), the
|
|
23
|
+
* guarantee pass keeps stepping quality down to this value — below the per-type floors — so an
|
|
24
|
+
* oversized capture never fails submission on size. Matches v11's quality-10 floor.
|
|
25
|
+
*/
|
|
26
|
+
readonly absoluteMinQ: 0.1;
|
|
27
|
+
/** Quality decrement per re-encode step. */
|
|
28
|
+
readonly qualityStep: 0.05;
|
|
29
|
+
/** Nominal re-encode start point; each asset steps down from its own capture quality. */
|
|
30
|
+
readonly startQ: 0.9;
|
|
31
|
+
/** Fixed allowance for multipart field names + part framing not counted in image/metadata totals. */
|
|
32
|
+
readonly structuralOverheadBytes: 2048;
|
|
33
|
+
};
|
|
34
|
+
/** base64 length of `n` raw bytes: `ceil(n / 3) * 4`. */
|
|
35
|
+
export declare function base64Len(n: number): number;
|
|
36
|
+
//# sourceMappingURL=payload_compression_config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload_compression_config.d.ts","sourceRoot":"","sources":["../../../src/data/compression/payload_compression_config.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,wBAAwB;IACnC,qDAAqD;;IAErD,mDAAmD;;IAEnD,2FAA2F;;IAE3F,kGAAkG;;IAElG,6FAA6F;;IAE7F,0FAA0F;;IAE1F,iGAAiG;;IAEjG,sGAAsG;;IAEtG,2FAA2F;;IAE3F;;;;;OAKG;;IAEH,4CAA4C;;IAE5C,yFAAyF;;IAEzF,qGAAqG;;CAE7F,CAAC;AAEX,yDAAyD;AACzD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3C"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared byte-size guardrails and adaptive JPEG-compression constants for keeping a v3
|
|
3
|
+
* form-data submission under AWS Lambda's 6 MB synchronous payload limit.
|
|
4
|
+
*
|
|
5
|
+
* **Cross-SDK source of truth** — the same thresholds, order, floors, and {@link base64Len}
|
|
6
|
+
* formula are mirrored byte-for-byte in the Android, iOS, and Flutter SDKs. Do not diverge any
|
|
7
|
+
* value without updating all four platforms.
|
|
8
|
+
*
|
|
9
|
+
* Lambda sees the **base64-encoded** body forwarded by API Gateway (base64 expands binary by
|
|
10
|
+
* ~33%), so the real guardrail is `PayloadCompressor.projectedEncodedSize` against
|
|
11
|
+
* `hardEncodedCap` — not raw bytes. Units are **binary MB (MiB, 1 << 20)**, locked across all
|
|
12
|
+
* four SDKs.
|
|
13
|
+
*/
|
|
14
|
+
const BYTES_PER_MB = 1 << 20;
|
|
15
|
+
export const PayloadCompressionConfig = {
|
|
16
|
+
/** 1 MiB. Binary MB is the locked cross-SDK unit. */
|
|
17
|
+
bytesPerMB: BYTES_PER_MB,
|
|
18
|
+
/** Primary compression goal for the raw bundle. */
|
|
19
|
+
rawTarget: 4 * BYTES_PER_MB,
|
|
20
|
+
/** Relaxed raw ceiling, accepted only if the projected encoded size still fits the cap. */
|
|
21
|
+
rawFallback: 4 * BYTES_PER_MB + BYTES_PER_MB / 2, // 4.5 MiB
|
|
22
|
+
/** The real guardrail: projected base64-encoded body must stay under this (margin under 6 MB). */
|
|
23
|
+
hardEncodedCap: Math.floor((57 * BYTES_PER_MB) / 10), // 5.7 MiB
|
|
24
|
+
/** Rule A trigger: combined document images larger than this start the document sub-pass. */
|
|
25
|
+
docCombinedTrigger: 4 * BYTES_PER_MB,
|
|
26
|
+
/** Rule A sub-target: pull the combined documents under this (back first, then front). */
|
|
27
|
+
docCombinedTarget: 3 * BYTES_PER_MB,
|
|
28
|
+
/** Rule B trigger: a selfie larger than this marks a face-heavy job (faces compressed first). */
|
|
29
|
+
selfieTrigger: 1 * BYTES_PER_MB,
|
|
30
|
+
/** Minimum JPEG quality for face images (selfie + liveness) — higher penalty. Pending DS sign-off. */
|
|
31
|
+
faceMinQ: 0.45,
|
|
32
|
+
/** Minimum JPEG quality for document images — preserves OCR / MRZ. Pending DS sign-off. */
|
|
33
|
+
docMinQ: 0.7,
|
|
34
|
+
/**
|
|
35
|
+
* Absolute JPEG-quality floor for the hard-guarantee pass. When a bundle is still over
|
|
36
|
+
* `rawFallback` after every image has hit its per-type floor (`faceMinQ` / `docMinQ`), the
|
|
37
|
+
* guarantee pass keeps stepping quality down to this value — below the per-type floors — so an
|
|
38
|
+
* oversized capture never fails submission on size. Matches v11's quality-10 floor.
|
|
39
|
+
*/
|
|
40
|
+
absoluteMinQ: 0.1,
|
|
41
|
+
/** Quality decrement per re-encode step. */
|
|
42
|
+
qualityStep: 0.05,
|
|
43
|
+
/** Nominal re-encode start point; each asset steps down from its own capture quality. */
|
|
44
|
+
startQ: 0.9,
|
|
45
|
+
/** Fixed allowance for multipart field names + part framing not counted in image/metadata totals. */
|
|
46
|
+
structuralOverheadBytes: 2048,
|
|
47
|
+
};
|
|
48
|
+
/** base64 length of `n` raw bytes: `ceil(n / 3) * 4`. */
|
|
49
|
+
export function base64Len(n) {
|
|
50
|
+
return Math.ceil(n / 3) * 4;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=payload_compression_config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload_compression_config.js","sourceRoot":"","sources":["../../../src/data/compression/payload_compression_config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,CAAC;AAE7B,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,qDAAqD;IACrD,UAAU,EAAE,YAAY;IACxB,mDAAmD;IACnD,SAAS,EAAE,CAAC,GAAG,YAAY;IAC3B,2FAA2F;IAC3F,WAAW,EAAE,CAAC,GAAG,YAAY,GAAG,YAAY,GAAG,CAAC,EAAE,UAAU;IAC5D,kGAAkG;IAClG,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU;IAChE,6FAA6F;IAC7F,kBAAkB,EAAE,CAAC,GAAG,YAAY;IACpC,0FAA0F;IAC1F,iBAAiB,EAAE,CAAC,GAAG,YAAY;IACnC,iGAAiG;IACjG,aAAa,EAAE,CAAC,GAAG,YAAY;IAC/B,sGAAsG;IACtG,QAAQ,EAAE,IAAI;IACd,2FAA2F;IAC3F,OAAO,EAAE,GAAG;IACZ;;;;;OAKG;IACH,YAAY,EAAE,GAAG;IACjB,4CAA4C;IAC5C,WAAW,EAAE,IAAI;IACjB,yFAAyF;IACzF,MAAM,EAAE,GAAG;IACX,qGAAqG;IACrG,uBAAuB,EAAE,IAAI;CACrB,CAAC;AAEX,yDAAyD;AACzD,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-role JPEG sizes in MB, measured before compression (`*Original`) and after (`*Final`); equal
|
|
3
|
+
* when the image was not compressed, `undefined` for an absent role. Stamped into the submission
|
|
4
|
+
* metadata so the backend sees each file's original size and its compressed size.
|
|
5
|
+
*/
|
|
6
|
+
export interface PayloadCompressionSizes {
|
|
7
|
+
readonly selfieOriginalMb?: number | undefined;
|
|
8
|
+
readonly selfieFinalMb?: number | undefined;
|
|
9
|
+
readonly frontOriginalMb?: number | undefined;
|
|
10
|
+
readonly frontFinalMb?: number | undefined;
|
|
11
|
+
readonly backOriginalMb?: number | undefined;
|
|
12
|
+
readonly backFinalMb?: number | undefined;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Builds `CompressibleAssets` from a submission's captured JPEG URIs and runs `PayloadCompressor`
|
|
16
|
+
* to bring the bundle under the transmission cap, re-stamping the Smile EXIF `image_digest` (and
|
|
17
|
+
* re-encoding natively) per step. Best-effort: it compresses each image down to its quality floor
|
|
18
|
+
* and resolves — it never throws on size, so submission is never blocked.
|
|
19
|
+
*/
|
|
20
|
+
export declare const PayloadCompressionRunner: {
|
|
21
|
+
compress(args: {
|
|
22
|
+
selfieImage?: string | undefined;
|
|
23
|
+
livenessImages?: readonly string[] | undefined;
|
|
24
|
+
frontDocument?: string | undefined;
|
|
25
|
+
backDocument?: string | undefined;
|
|
26
|
+
metadataBytes: number;
|
|
27
|
+
}): Promise<PayloadCompressionSizes>;
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=payload_compression_runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload_compression_runner.d.ts","sourceRoot":"","sources":["../../../src/data/compression/payload_compression_runner.ts"],"names":[],"mappings":"AAgBA;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAQD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;mBACd;QACnB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;QAC/C,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACnC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAClC,aAAa,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAoDrC,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { File } from "expo-file-system";
|
|
2
|
+
import { ImageType } from "@smileid/usesmileid_bridge";
|
|
3
|
+
import { CameraDefaults } from "../../camera/camera_defaults";
|
|
4
|
+
import { CompressibleAssets } from "./compressible_asset";
|
|
5
|
+
import { PayloadCompressor } from "./payload_compressor";
|
|
6
|
+
import { UriCompressibleAsset } from "./uri_compressible_asset";
|
|
7
|
+
// RN `CameraDefaults` only exposes the document JPEG quality; selfie/liveness capture quality
|
|
8
|
+
// match the cross-SDK values. These seed only the recompress start, which steps DOWN from here
|
|
9
|
+
// (never re-encoding above the capture quality, which would inflate).
|
|
10
|
+
const SELFIE_CAPTURE_QUALITY = 0.95;
|
|
11
|
+
const LIVENESS_CAPTURE_QUALITY = 0.8;
|
|
12
|
+
const BYTES_PER_MB = 1024 * 1024;
|
|
13
|
+
function sizeInMb(uri) {
|
|
14
|
+
if (uri === undefined)
|
|
15
|
+
return undefined;
|
|
16
|
+
const bytes = new File(uri).size ?? 0;
|
|
17
|
+
return bytes > 0 ? bytes / BYTES_PER_MB : undefined;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Builds `CompressibleAssets` from a submission's captured JPEG URIs and runs `PayloadCompressor`
|
|
21
|
+
* to bring the bundle under the transmission cap, re-stamping the Smile EXIF `image_digest` (and
|
|
22
|
+
* re-encoding natively) per step. Best-effort: it compresses each image down to its quality floor
|
|
23
|
+
* and resolves — it never throws on size, so submission is never blocked.
|
|
24
|
+
*/
|
|
25
|
+
export const PayloadCompressionRunner = {
|
|
26
|
+
async compress(args) {
|
|
27
|
+
// Original JPEG sizes, measured before the compressor rewrites the files in place.
|
|
28
|
+
const selfieOriginalMb = sizeInMb(args.selfieImage);
|
|
29
|
+
const frontOriginalMb = sizeInMb(args.frontDocument);
|
|
30
|
+
const backOriginalMb = sizeInMb(args.backDocument);
|
|
31
|
+
const assets = new CompressibleAssets({
|
|
32
|
+
selfie: args.selfieImage
|
|
33
|
+
? new UriCompressibleAsset(ImageType.Selfie, args.selfieImage, SELFIE_CAPTURE_QUALITY)
|
|
34
|
+
: undefined,
|
|
35
|
+
liveness: (args.livenessImages ?? []).map((uri) => new UriCompressibleAsset(ImageType.Liveness, uri, LIVENESS_CAPTURE_QUALITY)),
|
|
36
|
+
documentFront: args.frontDocument
|
|
37
|
+
? new UriCompressibleAsset(ImageType.DocumentFront, args.frontDocument, CameraDefaults.documentJpegQuality)
|
|
38
|
+
: undefined,
|
|
39
|
+
documentBack: args.backDocument
|
|
40
|
+
? new UriCompressibleAsset(ImageType.DocumentBack, args.backDocument, CameraDefaults.documentJpegQuality)
|
|
41
|
+
: undefined,
|
|
42
|
+
});
|
|
43
|
+
await PayloadCompressor.prepareBundleForTransmission(assets, args.metadataBytes);
|
|
44
|
+
// Final JPEG sizes, measured after compression (equal to the originals when not compressed).
|
|
45
|
+
return {
|
|
46
|
+
selfieOriginalMb,
|
|
47
|
+
selfieFinalMb: sizeInMb(args.selfieImage),
|
|
48
|
+
frontOriginalMb,
|
|
49
|
+
frontFinalMb: sizeInMb(args.frontDocument),
|
|
50
|
+
backOriginalMb,
|
|
51
|
+
backFinalMb: sizeInMb(args.backDocument),
|
|
52
|
+
};
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=payload_compression_runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload_compression_runner.js","sourceRoot":"","sources":["../../../src/data/compression/payload_compression_runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,8FAA8F;AAC9F,+FAA+F;AAC/F,sEAAsE;AACtE,MAAM,sBAAsB,GAAG,IAAI,CAAC;AACpC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAErC,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC;AAgBjC,SAAS,QAAQ,CAAC,GAAuB;IACvC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;IACtC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,KAAK,CAAC,QAAQ,CAAC,IAMd;QACC,mFAAmF;QACnF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEnD,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC;YACpC,MAAM,EAAE,IAAI,CAAC,WAAW;gBACtB,CAAC,CAAC,IAAI,oBAAoB,CACtB,SAAS,CAAC,MAAM,EAChB,IAAI,CAAC,WAAW,EAChB,sBAAsB,CACvB;gBACH,CAAC,CAAC,SAAS;YACb,QAAQ,EAAE,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CACvC,CAAC,GAAG,EAAE,EAAE,CACN,IAAI,oBAAoB,CACtB,SAAS,CAAC,QAAQ,EAClB,GAAG,EACH,wBAAwB,CACzB,CACJ;YACD,aAAa,EAAE,IAAI,CAAC,aAAa;gBAC/B,CAAC,CAAC,IAAI,oBAAoB,CACtB,SAAS,CAAC,aAAa,EACvB,IAAI,CAAC,aAAa,EAClB,cAAc,CAAC,mBAAmB,CACnC;gBACH,CAAC,CAAC,SAAS;YACb,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC7B,CAAC,CAAC,IAAI,oBAAoB,CACtB,SAAS,CAAC,YAAY,EACtB,IAAI,CAAC,YAAY,EACjB,cAAc,CAAC,mBAAmB,CACnC;gBACH,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;QACH,MAAM,iBAAiB,CAAC,4BAA4B,CAClD,MAAM,EACN,IAAI,CAAC,aAAa,CACnB,CAAC;QAEF,6FAA6F;QAC7F,OAAO;YACL,gBAAgB;YAChB,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;YACzC,eAAe;YACf,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;YAC1C,cAAc;YACd,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;SACzC,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type CompressibleAsset, CompressibleAssets } from "./compressible_asset";
|
|
2
|
+
/**
|
|
3
|
+
* Adaptive image-compression orchestrator that keeps a v3 submission under the Lambda payload
|
|
4
|
+
* cap. Pure decision logic over `CompressibleAssets` — the native JPEG encode + EXIF re-stamp
|
|
5
|
+
* lives behind `CompressibleAsset.recompress`.
|
|
6
|
+
*
|
|
7
|
+
* **Cross-SDK source of truth.** The size formulas, plan order, sub-rules, and loop here are
|
|
8
|
+
* mirrored byte-for-byte with the Android / iOS / Flutter SDKs. See `PayloadCompressionConfig`.
|
|
9
|
+
*
|
|
10
|
+
* Scope: image compression only. Metadata is **measured** (it counts toward the bundle and the
|
|
11
|
+
* projected encoded size) but never modified.
|
|
12
|
+
*/
|
|
13
|
+
export declare const PayloadCompressor: {
|
|
14
|
+
/** Raw bundle size: sum of current image bytes + serialized metadata JSON bytes. */
|
|
15
|
+
rawBundleSize(assets: CompressibleAssets, metadataBytes: number): number;
|
|
16
|
+
/**
|
|
17
|
+
* Projected size of the base64-encoded body API Gateway forwards to Lambda: images are
|
|
18
|
+
* base64-expanded, metadata JSON is counted raw, plus a fixed structural allowance. The real
|
|
19
|
+
* guardrail.
|
|
20
|
+
*/
|
|
21
|
+
projectedEncodedSize(assets: CompressibleAssets, metadataBytes: number): number;
|
|
22
|
+
/**
|
|
23
|
+
* Ordered (asset, minQuality) plan. Faces take the higher penalty (lower floor); documents are
|
|
24
|
+
* preserved. Rule B (selfie > 1 MB → faces first), Rule A (documents > 4 MB → back, front,
|
|
25
|
+
* faces last), else generic (faces first).
|
|
26
|
+
*/
|
|
27
|
+
buildCompressionPlan(assets: CompressibleAssets): Array<[CompressibleAsset, number]>;
|
|
28
|
+
/**
|
|
29
|
+
* Compress `assets` in place until the bundle is guaranteed to ship. Steps: early-out → Rule A
|
|
30
|
+
* document sub-target → walk the global plan to the per-type floors → hard-guarantee pass that
|
|
31
|
+
* drops past the floors (down to `absoluteMinQ`) until the bundle fits both caps. Never throws;
|
|
32
|
+
* a job never fails submission purely on payload size.
|
|
33
|
+
*/
|
|
34
|
+
prepareBundleForTransmission(assets: CompressibleAssets, metadataBytes: number): Promise<void>;
|
|
35
|
+
/** True while the bundle exceeds the relaxed raw ceiling or the projected encoded cap. */
|
|
36
|
+
_overRelaxedCap(assets: CompressibleAssets, metadataBytes: number): boolean;
|
|
37
|
+
/** Reduce each asset in `group` (order matters) toward `target` as measured by `measure`. */
|
|
38
|
+
_compressGroupToTarget(group: CompressibleAsset[], minQuality: number, target: number, measure: () => number): Promise<void>;
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=payload_compressor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload_compressor.d.ts","sourceRoot":"","sources":["../../../src/data/compression/payload_compressor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAM9B;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB;IAC5B,oFAAoF;0BAC9D,kBAAkB,iBAAiB,MAAM,GAAG,MAAM;IAOxE;;;;OAIG;iCAEO,kBAAkB,iBACX,MAAM,GACpB,MAAM;IAUT;;;;OAIG;iCAEO,kBAAkB,GACzB,KAAK,CAAC,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAwBrC;;;;;OAKG;yCAEO,kBAAkB,iBACX,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;IAoDhB,0FAA0F;4BAClE,kBAAkB,iBAAiB,MAAM,GAAG,OAAO;IAO3E,6FAA6F;kCAEpF,iBAAiB,EAAE,cACd,MAAM,UACV,MAAM,WACL,MAAM,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;CAUjB,CAAC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { base64Len, PayloadCompressionConfig as C, } from "./payload_compression_config";
|
|
2
|
+
/**
|
|
3
|
+
* Adaptive image-compression orchestrator that keeps a v3 submission under the Lambda payload
|
|
4
|
+
* cap. Pure decision logic over `CompressibleAssets` — the native JPEG encode + EXIF re-stamp
|
|
5
|
+
* lives behind `CompressibleAsset.recompress`.
|
|
6
|
+
*
|
|
7
|
+
* **Cross-SDK source of truth.** The size formulas, plan order, sub-rules, and loop here are
|
|
8
|
+
* mirrored byte-for-byte with the Android / iOS / Flutter SDKs. See `PayloadCompressionConfig`.
|
|
9
|
+
*
|
|
10
|
+
* Scope: image compression only. Metadata is **measured** (it counts toward the bundle and the
|
|
11
|
+
* projected encoded size) but never modified.
|
|
12
|
+
*/
|
|
13
|
+
export const PayloadCompressor = {
|
|
14
|
+
/** Raw bundle size: sum of current image bytes + serialized metadata JSON bytes. */
|
|
15
|
+
rawBundleSize(assets, metadataBytes) {
|
|
16
|
+
return (assets.all().reduce((sum, asset) => sum + asset.encodedSize(), 0) +
|
|
17
|
+
metadataBytes);
|
|
18
|
+
},
|
|
19
|
+
/**
|
|
20
|
+
* Projected size of the base64-encoded body API Gateway forwards to Lambda: images are
|
|
21
|
+
* base64-expanded, metadata JSON is counted raw, plus a fixed structural allowance. The real
|
|
22
|
+
* guardrail.
|
|
23
|
+
*/
|
|
24
|
+
projectedEncodedSize(assets, metadataBytes) {
|
|
25
|
+
return (assets
|
|
26
|
+
.all()
|
|
27
|
+
.reduce((sum, asset) => sum + base64Len(asset.encodedSize()), 0) +
|
|
28
|
+
metadataBytes +
|
|
29
|
+
C.structuralOverheadBytes);
|
|
30
|
+
},
|
|
31
|
+
/**
|
|
32
|
+
* Ordered (asset, minQuality) plan. Faces take the higher penalty (lower floor); documents are
|
|
33
|
+
* preserved. Rule B (selfie > 1 MB → faces first), Rule A (documents > 4 MB → back, front,
|
|
34
|
+
* faces last), else generic (faces first).
|
|
35
|
+
*/
|
|
36
|
+
buildCompressionPlan(assets) {
|
|
37
|
+
const plan = [];
|
|
38
|
+
const selfieSize = assets.selfie?.encodedSize() ?? 0;
|
|
39
|
+
const docCombined = assets.documentCombinedSize();
|
|
40
|
+
if (assets.selfie && selfieSize > C.selfieTrigger) {
|
|
41
|
+
plan.push([assets.selfie, C.faceMinQ]);
|
|
42
|
+
for (const frame of assets.liveness)
|
|
43
|
+
plan.push([frame, C.faceMinQ]);
|
|
44
|
+
if (assets.documentBack)
|
|
45
|
+
plan.push([assets.documentBack, C.docMinQ]);
|
|
46
|
+
if (assets.documentFront)
|
|
47
|
+
plan.push([assets.documentFront, C.docMinQ]);
|
|
48
|
+
}
|
|
49
|
+
else if (docCombined > C.docCombinedTrigger) {
|
|
50
|
+
if (assets.documentBack)
|
|
51
|
+
plan.push([assets.documentBack, C.docMinQ]);
|
|
52
|
+
if (assets.documentFront)
|
|
53
|
+
plan.push([assets.documentFront, C.docMinQ]);
|
|
54
|
+
if (assets.selfie)
|
|
55
|
+
plan.push([assets.selfie, C.faceMinQ]);
|
|
56
|
+
for (const frame of assets.liveness)
|
|
57
|
+
plan.push([frame, C.faceMinQ]);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
if (assets.selfie)
|
|
61
|
+
plan.push([assets.selfie, C.faceMinQ]);
|
|
62
|
+
for (const frame of assets.liveness)
|
|
63
|
+
plan.push([frame, C.faceMinQ]);
|
|
64
|
+
if (assets.documentBack)
|
|
65
|
+
plan.push([assets.documentBack, C.docMinQ]);
|
|
66
|
+
if (assets.documentFront)
|
|
67
|
+
plan.push([assets.documentFront, C.docMinQ]);
|
|
68
|
+
}
|
|
69
|
+
return plan;
|
|
70
|
+
},
|
|
71
|
+
/**
|
|
72
|
+
* Compress `assets` in place until the bundle is guaranteed to ship. Steps: early-out → Rule A
|
|
73
|
+
* document sub-target → walk the global plan to the per-type floors → hard-guarantee pass that
|
|
74
|
+
* drops past the floors (down to `absoluteMinQ`) until the bundle fits both caps. Never throws;
|
|
75
|
+
* a job never fails submission purely on payload size.
|
|
76
|
+
*/
|
|
77
|
+
async prepareBundleForTransmission(assets, metadataBytes) {
|
|
78
|
+
// Step 0: already within both guardrails.
|
|
79
|
+
if (this.projectedEncodedSize(assets, metadataBytes) <= C.hardEncodedCap &&
|
|
80
|
+
this.rawBundleSize(assets, metadataBytes) <= C.rawTarget) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
// Step 1 (Rule A): pull the documents under the combined sub-target first (back, then front).
|
|
84
|
+
if (assets.documentCombinedSize() > C.docCombinedTrigger) {
|
|
85
|
+
const group = [assets.documentBack, assets.documentFront].filter((a) => a !== undefined);
|
|
86
|
+
await this._compressGroupToTarget(group, C.docMinQ, C.docCombinedTarget, () => assets.documentCombinedSize());
|
|
87
|
+
}
|
|
88
|
+
// Step 2: walk the global plan, re-measuring after each decrement, down to the per-type floors.
|
|
89
|
+
for (const [asset, minQuality] of this.buildCompressionPlan(assets)) {
|
|
90
|
+
while (this.rawBundleSize(assets, metadataBytes) > C.rawTarget &&
|
|
91
|
+
asset.quality() > minQuality) {
|
|
92
|
+
await asset.recompress(Math.max(minQuality, asset.quality() - C.qualityStep));
|
|
93
|
+
}
|
|
94
|
+
if (this.rawBundleSize(assets, metadataBytes) <= C.rawTarget)
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
// Step 3 (hard guarantee): if the bundle is still over the relaxed raw ceiling or the encoded
|
|
98
|
+
// cap after every image hit its per-type floor, keep stepping quality down past the floors to
|
|
99
|
+
// `absoluteMinQ` — faces first per the plan order — so the bundle always ships under the cap
|
|
100
|
+
// regardless of any per-type quality floor.
|
|
101
|
+
for (const [asset] of this.buildCompressionPlan(assets)) {
|
|
102
|
+
while (this._overRelaxedCap(assets, metadataBytes) &&
|
|
103
|
+
asset.quality() > C.absoluteMinQ) {
|
|
104
|
+
await asset.recompress(Math.max(C.absoluteMinQ, asset.quality() - C.qualityStep));
|
|
105
|
+
}
|
|
106
|
+
if (!this._overRelaxedCap(assets, metadataBytes))
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
/** True while the bundle exceeds the relaxed raw ceiling or the projected encoded cap. */
|
|
111
|
+
_overRelaxedCap(assets, metadataBytes) {
|
|
112
|
+
return (this.rawBundleSize(assets, metadataBytes) > C.rawFallback ||
|
|
113
|
+
this.projectedEncodedSize(assets, metadataBytes) > C.hardEncodedCap);
|
|
114
|
+
},
|
|
115
|
+
/** Reduce each asset in `group` (order matters) toward `target` as measured by `measure`. */
|
|
116
|
+
async _compressGroupToTarget(group, minQuality, target, measure) {
|
|
117
|
+
for (const asset of group) {
|
|
118
|
+
while (measure() > target && asset.quality() > minQuality) {
|
|
119
|
+
await asset.recompress(Math.max(minQuality, asset.quality() - C.qualityStep));
|
|
120
|
+
}
|
|
121
|
+
if (measure() <= target)
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
//# sourceMappingURL=payload_compressor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload_compressor.js","sourceRoot":"","sources":["../../../src/data/compression/payload_compressor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ImageTypeId } from "@smileid/usesmileid_bridge";
|
|
2
|
+
import type { CompressibleAsset } from "./compressible_asset";
|
|
3
|
+
/**
|
|
4
|
+
* `CompressibleAsset` backed by a captured JPEG at `uri`.
|
|
5
|
+
*
|
|
6
|
+
* The re-encode is **native** (`expo-image-manipulator`, per the spec's "do not reimplement
|
|
7
|
+
* compression in JS" rule), and the Smile EXIF `image_digest` re-stamp is **native**
|
|
8
|
+
* (`SmileExifTagger.finalize`). The original bytes are preserved once on the first `recompress`
|
|
9
|
+
* so every step re-encodes from source (no generational stacking; deterministic retries).
|
|
10
|
+
*/
|
|
11
|
+
export declare class UriCompressibleAsset implements CompressibleAsset {
|
|
12
|
+
readonly imageType: ImageTypeId;
|
|
13
|
+
private readonly uri;
|
|
14
|
+
private _quality;
|
|
15
|
+
private _size;
|
|
16
|
+
private _sourceUri;
|
|
17
|
+
constructor(imageType: ImageTypeId, uri: string, captureQuality: number);
|
|
18
|
+
encodedSize(): number;
|
|
19
|
+
quality(): number;
|
|
20
|
+
recompress(quality: number): Promise<void>;
|
|
21
|
+
private static _fileSize;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=uri_compressible_asset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uri_compressible_asset.d.ts","sourceRoot":"","sources":["../../../src/data/compression/uri_compressible_asset.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAI9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;;;;;;GAOG;AACH,qBAAa,oBAAqB,YAAW,iBAAiB;IAM1D,QAAQ,CAAC,SAAS,EAAE,WAAW;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG;IANtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAAqB;gBAG5B,SAAS,EAAE,WAAW,EACd,GAAG,EAAE,MAAM,EAC5B,cAAc,EAAE,MAAM;IAMxB,WAAW,IAAI,MAAM;IAIrB,OAAO,IAAI,MAAM;IAIX,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuChD,OAAO,CAAC,MAAM,CAAC,SAAS;CAOzB"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { File } from "expo-file-system";
|
|
2
|
+
import { ImageManipulator, SaveFormat } from "expo-image-manipulator";
|
|
3
|
+
// SmileExifTagger is SDK-internal (not on the public barrel) — deep import, matching the capture screen.
|
|
4
|
+
import { SmileExifTagger } from "@smileid/usesmileid_bridge/src/exif/smile_exif_tagger";
|
|
5
|
+
/**
|
|
6
|
+
* `CompressibleAsset` backed by a captured JPEG at `uri`.
|
|
7
|
+
*
|
|
8
|
+
* The re-encode is **native** (`expo-image-manipulator`, per the spec's "do not reimplement
|
|
9
|
+
* compression in JS" rule), and the Smile EXIF `image_digest` re-stamp is **native**
|
|
10
|
+
* (`SmileExifTagger.finalize`). The original bytes are preserved once on the first `recompress`
|
|
11
|
+
* so every step re-encodes from source (no generational stacking; deterministic retries).
|
|
12
|
+
*/
|
|
13
|
+
export class UriCompressibleAsset {
|
|
14
|
+
imageType;
|
|
15
|
+
uri;
|
|
16
|
+
_quality;
|
|
17
|
+
_size;
|
|
18
|
+
_sourceUri;
|
|
19
|
+
constructor(imageType, uri, captureQuality) {
|
|
20
|
+
this.imageType = imageType;
|
|
21
|
+
this.uri = uri;
|
|
22
|
+
this._quality = Math.min(Math.max(captureQuality, 0), 1);
|
|
23
|
+
this._size = UriCompressibleAsset._fileSize(uri);
|
|
24
|
+
}
|
|
25
|
+
encodedSize() {
|
|
26
|
+
return this._size;
|
|
27
|
+
}
|
|
28
|
+
quality() {
|
|
29
|
+
return this._quality;
|
|
30
|
+
}
|
|
31
|
+
async recompress(quality) {
|
|
32
|
+
const target = new File(this.uri);
|
|
33
|
+
if (!target.exists)
|
|
34
|
+
return;
|
|
35
|
+
// Preserve the source once so each step re-encodes from the original (no generational loss).
|
|
36
|
+
if (this._sourceUri === undefined) {
|
|
37
|
+
const originalUri = `${this.uri}.orig`;
|
|
38
|
+
try {
|
|
39
|
+
target.copy(new File(originalUri));
|
|
40
|
+
this._sourceUri = originalUri;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
// Copy failed — fall back to re-encoding in place (still functional, mild generational loss).
|
|
44
|
+
this._sourceUri = this.uri;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const clamped = Math.min(Math.max(quality, 0), 1);
|
|
48
|
+
const context = ImageManipulator.manipulate(this._sourceUri);
|
|
49
|
+
const rendered = await context.renderAsync();
|
|
50
|
+
const result = await rendered.saveAsync({
|
|
51
|
+
compress: clamped,
|
|
52
|
+
format: SaveFormat.JPEG,
|
|
53
|
+
});
|
|
54
|
+
// Overwrite the request's path with the re-encoded bytes.
|
|
55
|
+
try {
|
|
56
|
+
if (target.exists)
|
|
57
|
+
target.delete();
|
|
58
|
+
new File(result.uri).move(target);
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
// Move failed — leave the request pointing at its original path; best effort.
|
|
62
|
+
}
|
|
63
|
+
// Re-stamp the Smile EXIF image_digest over the new bytes (native; context set at capture).
|
|
64
|
+
await SmileExifTagger.finalize(this.uri, this.imageType);
|
|
65
|
+
this._quality = quality;
|
|
66
|
+
this._size = UriCompressibleAsset._fileSize(this.uri);
|
|
67
|
+
}
|
|
68
|
+
static _fileSize(uri) {
|
|
69
|
+
try {
|
|
70
|
+
return new File(uri).size ?? 0;
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
return 0;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=uri_compressible_asset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uri_compressible_asset.js","sourceRoot":"","sources":["../../../src/data/compression/uri_compressible_asset.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,9 @@ import type { CacheConfig } from "../../../core/models/network_config";
|
|
|
6
6
|
* verification flows without aggressive trimming.
|
|
7
7
|
*/
|
|
8
8
|
export declare class CacheConfigBuilder {
|
|
9
|
+
/** Whether HTTP response caching is on. */
|
|
9
10
|
enabled: boolean;
|
|
10
|
-
/**
|
|
11
|
+
/** Maximum on-disk cache size, in bytes. Default 50 MB. */
|
|
11
12
|
maxSize: number;
|
|
12
13
|
/**
|
|
13
14
|
* Multiplier helper: `c.megabytes(50)` evaluates to `50 * 1024 * 1024`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache_config_builder.d.ts","sourceRoot":"","sources":["../../../../src/data/dsl/builder/cache_config_builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAEvE;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,UAAQ;
|
|
1
|
+
{"version":3,"file":"cache_config_builder.d.ts","sourceRoot":"","sources":["../../../../src/data/dsl/builder/cache_config_builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAEvE;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,2CAA2C;IAC3C,OAAO,UAAQ;IAEf,2DAA2D;IAC3D,OAAO,SAAoB;IAE3B;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIhC,KAAK,IAAI,WAAW;CAGrB"}
|
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
* verification flows without aggressive trimming.
|
|
6
6
|
*/
|
|
7
7
|
export class CacheConfigBuilder {
|
|
8
|
+
/** Whether HTTP response caching is on. */
|
|
8
9
|
enabled = true;
|
|
9
|
-
/**
|
|
10
|
+
/** Maximum on-disk cache size, in bytes. Default 50 MB. */
|
|
10
11
|
maxSize = 50 * 1024 * 1024;
|
|
11
12
|
/**
|
|
12
13
|
* Multiplier helper: `c.megabytes(50)` evaluates to `50 * 1024 * 1024`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache_config_builder.js","sourceRoot":"","sources":["../../../../src/data/dsl/builder/cache_config_builder.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IAC7B,OAAO,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"cache_config_builder.js","sourceRoot":"","sources":["../../../../src/data/dsl/builder/cache_config_builder.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IAC7B,2CAA2C;IAC3C,OAAO,GAAG,IAAI,CAAC;IAEf,2DAA2D;IAC3D,OAAO,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;IAE3B;;;;OAIG;IACH,SAAS,CAAC,KAAa;QACrB,OAAO,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,KAAK;QACH,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;CACF"}
|
|
@@ -12,13 +12,22 @@ import { LogLevel, type NetworkInnerConfig, type NetworkLoggingConfig, type Part
|
|
|
12
12
|
* identity.
|
|
13
13
|
*/
|
|
14
14
|
export declare class PartnerConfigBuilder {
|
|
15
|
+
/** Your Smile ID partner id. Required. */
|
|
15
16
|
partnerId: string;
|
|
17
|
+
/**
|
|
18
|
+
* Optional webhook URL Smile ID calls with the job result. It is also
|
|
19
|
+
* sent as a per-request identity header.
|
|
20
|
+
*/
|
|
16
21
|
callbackUrl: string;
|
|
22
|
+
/**
|
|
23
|
+
* When true, routes requests to the sandbox environment instead of
|
|
24
|
+
* production. Defaults to false.
|
|
25
|
+
*/
|
|
17
26
|
useSandbox: boolean;
|
|
18
27
|
/**
|
|
19
|
-
* Optional
|
|
20
|
-
*
|
|
21
|
-
* KYC submissions when set.
|
|
28
|
+
* Optional free-form key/value pairs echoed back on the job result for
|
|
29
|
+
* your own correlation. Forwarded onto the `partner_params` JSON
|
|
30
|
+
* multipart form part on Enhanced / Biometric KYC submissions when set.
|
|
22
31
|
*/
|
|
23
32
|
partnerParams?: Record<string, string>;
|
|
24
33
|
build(): PartnerConfig;
|
|
@@ -32,8 +41,14 @@ export declare class PartnerConfigBuilder {
|
|
|
32
41
|
* redaction list with their own proxy-injected headers.
|
|
33
42
|
*/
|
|
34
43
|
export declare class LoggingConfigBuilder {
|
|
44
|
+
/** Whether HTTP request/response logging is on. */
|
|
35
45
|
enabled: boolean;
|
|
46
|
+
/** Logging verbosity: none, basic, headers, or full body. */
|
|
36
47
|
level: LogLevel;
|
|
48
|
+
/**
|
|
49
|
+
* Header names whose values are masked in logs (for example
|
|
50
|
+
* authorization headers).
|
|
51
|
+
*/
|
|
37
52
|
redactHeaders: readonly string[];
|
|
38
53
|
build(): NetworkLoggingConfig;
|
|
39
54
|
}
|
|
@@ -50,27 +65,38 @@ export declare class LoggingConfigBuilder {
|
|
|
50
65
|
* omit blocks they don't need.
|
|
51
66
|
*/
|
|
52
67
|
export declare class ConfigBuilder {
|
|
68
|
+
/**
|
|
69
|
+
* The verification job this flow submits (for example smart-selfie
|
|
70
|
+
* enrollment, biometric KYC, or document verification). Required.
|
|
71
|
+
*/
|
|
53
72
|
jobType?: JobType;
|
|
54
73
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
74
|
+
* The short-lived authentication token for this session. Your backend
|
|
75
|
+
* obtains it from Smile ID's `/v3/token` endpoint using your API key;
|
|
76
|
+
* the SDK never exchanges credentials itself. Stamped as the
|
|
77
|
+
* `smileid-token` HTTP header on every authenticated request.
|
|
59
78
|
*/
|
|
60
79
|
token: string;
|
|
61
80
|
/**
|
|
62
|
-
* Optional async
|
|
63
|
-
* with
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
* 401 response is surfaced unchanged.
|
|
81
|
+
* Optional async callback invoked when the server rejects the token
|
|
82
|
+
* with a 401. Return a fresh token and the SDK retries the request
|
|
83
|
+
* once with it. The callback receives the token the SDK was using.
|
|
84
|
+
* Concurrent 401s collapse to a single callback invocation via the
|
|
85
|
+
* SDK's shared `TokenHolder`. If the callback throws or the retry also
|
|
86
|
+
* returns 401, the original 401 response is surfaced unchanged.
|
|
69
87
|
*/
|
|
70
88
|
onTokenExpired?: (previousToken: string) => Promise<string>;
|
|
71
89
|
private _partnerConfig?;
|
|
72
90
|
private _logging?;
|
|
91
|
+
/**
|
|
92
|
+
* Configures partner identity and per-job environment settings —
|
|
93
|
+
* partner id, callback URL, sandbox mode, and partner params.
|
|
94
|
+
*/
|
|
73
95
|
partnerConfig(block: (p: PartnerConfigBuilder) => void): void;
|
|
96
|
+
/**
|
|
97
|
+
* Configures HTTP request/response logging: on/off, verbosity, and
|
|
98
|
+
* redacted headers.
|
|
99
|
+
*/
|
|
74
100
|
logging(block: (l: LoggingConfigBuilder) => void): void;
|
|
75
101
|
build(): NetworkInnerConfig;
|
|
76
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config_builder.d.ts","sourceRoot":"","sources":["../../../../src/data/dsl/builder/config_builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EACL,QAAQ,EACR,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EACnB,MAAM,qCAAqC,CAAC;AAE7C;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAC/B,SAAS,SAAM;
|
|
1
|
+
{"version":3,"file":"config_builder.d.ts","sourceRoot":"","sources":["../../../../src/data/dsl/builder/config_builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EACL,QAAQ,EACR,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EACnB,MAAM,qCAAqC,CAAC;AAE7C;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAC/B,0CAA0C;IAC1C,SAAS,SAAM;IAEf;;;OAGG;IACH,WAAW,SAAM;IAEjB;;;OAGG;IACH,UAAU,UAAS;IAEnB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEvC,KAAK,IAAI,aAAa;CAUvB;AAED;;;;;;;GAOG;AACH,qBAAa,oBAAoB;IAC/B,mDAAmD;IACnD,OAAO,UAAQ;IAEf,6DAA6D;IAC7D,KAAK,EAAE,QAAQ,CAAkB;IAEjC;;;OAGG;IACH,aAAa,EAAE,SAAS,MAAM,EAAE,CAAM;IAEtC,KAAK,IAAI,oBAAoB;CAO9B;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,aAAa;IACxB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;OAKG;IACH,KAAK,SAAM;IAEX;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5D,OAAO,CAAC,cAAc,CAAC,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,CAAuB;IAExC;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,oBAAoB,KAAK,IAAI,GAAG,IAAI;IAK7D;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,oBAAoB,KAAK,IAAI,GAAG,IAAI;IAKvD,KAAK,IAAI,kBAAkB;CAa5B"}
|