UNPKG

@ha_tecno/react-native-sdk

Version:

React Native SDK for biometric authentication, liveness detection, and fingerprint recognition

94 lines (93 loc) 2.99 kB
"use strict"; import { Platform } from 'react-native'; import { getModel } from 'react-native-device-info'; import { v4 as uuid } from 'uuid'; import { api } from "../http/api.js"; export const calibrationService = { registerOperationPointsBiometrics: async ({ images, exposure, exposureMin, exposureMax, exposureScaleZeroToOne, zoom, zoomMin, zoomMax, zoomScaleZeroToOne, deviceModel }) => { try { const device_model = deviceModel || getModel(); const payload = { device_model, images, exposure, exposureMin, exposureMax, exposureScaleZeroToOne, zoom, zoomMin, zoomMax, zoomScaleZeroToOne, operationalSystem: Platform.OS }; const data = await api.post('/v2/images-quality', payload); if (data.status === 400) { throw new Error('Houve um problema ao tentar cadastrar o ponto de operação, tente novamente!'); } return { status: data.status, message: data.message || 'Cadastro do dispositivo foi realizado com sucesso! Agora você pode acessar o LiveID.' }; } catch (error) { console.error('[Biometric Calibration Error]:', error); return { status: error?.status || 400, message: error?.message || 'Erro ao calibrar pontos de operação para biometria' }; } }, registerOperationPointsLiveness: async ({ videoPath, exposure, exposureMin, exposureMax, exposureScaleZeroToOne, deviceModel }) => { try { const uuidv4 = uuid(); const device_model = deviceModel || getModel(); const formData = new FormData(); formData.append('video', { uri: Platform.select({ ios: videoPath, android: `file://${videoPath}` }), type: 'video/mp4', name: `${uuidv4}.mp4` }); formData.append('video_key', uuidv4); formData.append('device_model', device_model); formData.append('operationalSystem', Platform.OS); formData.append('exposure', exposure.toString()); formData.append('exposureMin', exposureMin.toString()); formData.append('exposureMax', exposureMax.toString()); formData.append('exposureScaleZeroToOne', exposureScaleZeroToOne.toString()); const data = await api.postFormData('/v1/video-quality', formData); const hasConfig = data.config !== undefined; return { status: data.status, message: hasConfig ? 'Cadastro do dispositivo foi realizado com sucesso! Agora você pode acessar o LiveID.' : 'Tudo certo! Repita o processo mais uma vez!', hasConfig }; } catch (error) { console.error('[Liveness Calibration Error]:', error); return { status: error?.status || 400, message: error?.message || 'Continue, faça com o próximo ponto de operação.' }; } } }; //# sourceMappingURL=calibrationService.js.map