# react_native_zy_protectabio_module

Libreria la cual es encargada de verificación biométrica de personas peruanas.
Esta libreria esta diseñada especificamente para le empresa Protecta. 

## NOTAS:
```
Ninguna
```

## Anotaciones

### Android: version minima de android es 24, version compilada con compileSDK 34, se recomienda usar compileSDK 34 o superior
### iOS: aun en desarrollo

## Installation

```sh
npm install react-native-zyprotectabio-module@(numero_version) --legacy-peer-deps
```

## Usage

### MÉTODO
```js
 const { ZyprotectabioModule } = NativeModules;

// ...

  const opciones = {
    tiDocumento: "1", // tipo Documento : DNI: 1 nuDocumento: documentNumber, // Numero de documento
    nuDocumento: "00112233", // Número de documento
    accessToken: "abcdfghi12345",  // Access token generado por ambiente
    bioPais: "PE", //Pais de verificacion (siempre PE)
    tiOperacion: "FLUJO_FACIAL_MANUAL", //Operacion debe ser FLUJO_FACIAL_MANUAL
    urlSource: "DEV2" // Ambiente a la conexion DEV2 , POC , DEVX , SIGN (PRODUCCION)
  };
   const result = await ZyprotectabioModule.onZyBioCapture(opciones);

//..

//para mas información revisar el documento de especificación.
```
## ANDROID FIRMA
- Para esta version, para su funcionamiento es necesario correr el app con la firma(SHA-1) compartida a ZyTrust, tanto en debug/release porque la licencia esta vinculada al applicationId y SHA-1 de la firma

- EJEMPLO:
A nivel del build.gradle(App)
```
android {
  ...

    signingConfigs {
        debug {
            keyAlias 'miFirma'
            keyPassword 'miFirma'
            storeFile file('../miFirma.jks')
            storePassword 'miFirma'
        }
        release {
            keyAlias 'miFirma'
            keyPassword 'miFirma'
            storeFile file('../miFirma.jks')
            storePassword 'miFirma'
        }
    }
    defaultConfig {
      ...
    }
  ...
}

```
## ANDROID REGLAS OFUSCAMIENTO
```

####################### INICIO Zy  Lib #################################
-dontwarn org.bouncycastle.jce.provider.BouncyCastleProvider
-dontwarn com.google.gson.**
-dontwarn com.facebook.jni.**
-dontwarn com.facebook.react.**

# Mantener Zytrust
-keep class com.zy.multicompany.android.lib.sdk.validacionfacial.** { *; }
-keep interface com.zy.multicompany.android.lib.sdk.validacionfacial.** { *; }

# Mantener auth0
-keep class com.auth0.** { *; }

# Mantener FACE IDENTY
-keep class com.identy.face.** { *; }
-keep enum * {*;}

# Mantener Regula OCR
-keep class com.regula.documentreader.** { *; }
-keep class com.regula.common.** { *; }
-keep class androidx.appcompat.widget.FitWindowsLinearLayout { *; }


# Mantener todo React Native
-keep class com.facebook.react.** { *; }
-keep class com.zymulticompanybiomodule.** { *; }
-keep class com.testmulticompany_new.** { *; } # es del app test no es necesario incluirlo

# Mantener todos los managers y eventos nativos
-keep class com.facebook.react.uimanager.** { *; }
-keep class com.facebook.react.bridge.** { *; }

# Mantener componentes que usan reflexión (ViewManagers, NativeModules)
-keepclassmembers class * {
    @com.facebook.react.uimanager.annotations.ReactProp <methods>;
}

# Mantener clases usadas por JavaScriptCore
-keep class com.facebook.jni.** { *; }

# Mantener atributos de anotaciones (ReactProp, ReactModule, etc.)
-keepattributes *Annotation*


# Mantener Retrofit interfaces y métodos
-keep interface retrofit2.** { *; }
-keep class retrofit2.** { *; }
-dontwarn retrofit2.**

# Mantener métodos anotados de Retrofit
-keepclassmembers class * {
    @retrofit2.http.* <methods>;
}

# Mantener OkHttp
-keep class okhttp3.** { *; }
-dontwarn okhttp3.**

# Mantener Okio (usado por OkHttp)
-keep class okio.** { *; }
-dontwarn okio.**

# Mantener adaptadores de conversión (si usas Gson, Moshi, etc.)
-keep class com.google.gson.** { *; }


####################### FIN Zy  Lib #################################

```
## Contributing

- Elaborado por Zytrust S.A.

- Compañia ZyTrust S.A. Perú


## License

ZyTrust S.A. Perú


## Contact

- Webpage: https://www.zytrust.com/

- Oficina: República de Panamá 3609, Oficinas 2201-2202, San Isidro. Lima, Perú.

- Teléfono: +51 1 321 4444 || (+51) 974 260 111

- Email: info@zytrust.com || support@zytrust.com || ztmobile@zytrust.com


---

Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
