santoid-sdk 5.2.0 → 5.4.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/.bitbucket/pipelines/generated/pipeline/pipes/sonarsource/sonarcloud-scan/sonarcloud-scan.log +263 -295
- package/CHANGELOG.md +7 -0
- package/README.md +455 -143
- package/api/ApiAsyncService.d.ts +32 -0
- package/api/ApiAsyncService.js +15 -0
- package/api/ApiFaceMatchService.d.ts +30 -0
- package/api/ApiFaceMatchService.js +32 -0
- package/api/ApiOcrService.d.ts +62 -0
- package/api/ApiOcrService.js +25 -0
- package/api/ApiTypificationService.d.ts +23 -0
- package/api/{TypificationService.js → ApiTypificationService.js} +8 -9
- package/browser/index.js +1 -1
- package/client/core/commons/BaseCoreService.d.ts +23 -0
- package/client/core/commons/BaseCoreService.js +156 -0
- package/client/core/index.d.ts +4 -0
- package/client/core/index.js +9 -0
- package/client/core/methods/faceMatch/Service.d.ts +19 -0
- package/client/core/methods/faceMatch/Service.js +122 -0
- package/client/core/methods/faceMatch/index.d.ts +15 -0
- package/client/core/methods/faceMatch/index.js +43 -0
- package/client/core/methods/ocr/Service.d.ts +11 -0
- package/client/core/methods/ocr/Service.js +52 -0
- package/client/core/methods/ocr/index.d.ts +10 -0
- package/client/core/methods/ocr/index.js +40 -0
- package/client/core/methods/typification/Service.d.ts +9 -0
- package/client/core/methods/typification/Service.js +52 -0
- package/client/core/methods/typification/index.d.ts +10 -0
- package/client/core/methods/typification/index.js +40 -0
- package/client/core/utils/types.d.ts +30 -0
- package/client/core/utils/types.js +2 -0
- package/client/index.d.ts +6 -0
- package/client/index.js +6 -0
- package/client/liveness/methods/livenessDetection/Service.js +10 -2
- package/client/liveness/methods/livenessDetection/index.js +5 -1
- package/client/liveness/methods/uploadIdentificationDocument/Service.d.ts +19 -19
- package/client/liveness/methods/uploadIdentificationDocument/Service.js +8 -4
- package/client/liveness/methods/uploadIdentificationDocument/index.d.ts +4 -6
- package/client/liveness/utils/getNextFrame.d.ts +4 -1
- package/client/liveness/utils/getNextFrame.js +9 -3
- package/package.json +1 -1
- package/server/core/index.d.ts +4 -0
- package/server/core/index.js +9 -0
- package/server/core/methods/faceMatch/Service.d.ts +9 -0
- package/server/core/methods/faceMatch/Service.js +23 -0
- package/server/core/methods/faceMatch/index.d.ts +7 -0
- package/server/core/methods/faceMatch/index.js +28 -0
- package/server/core/methods/ocr/Service.d.ts +9 -0
- package/server/core/methods/ocr/Service.js +23 -0
- package/server/core/methods/ocr/index.d.ts +7 -0
- package/server/core/methods/ocr/index.js +28 -0
- package/server/core/methods/typification/Service.d.ts +9 -0
- package/server/core/methods/typification/Service.js +23 -0
- package/server/core/methods/typification/index.d.ts +7 -0
- package/server/core/methods/typification/index.js +28 -0
- package/server/index.d.ts +6 -0
- package/server/index.js +6 -0
- package/server/liveness/methods/livenessDetection/index.js +5 -1
- package/server/liveness/methods/uploadIdentificationDocument/Service.d.ts +2 -2
- package/server/liveness/methods/uploadIdentificationDocument/Service.js +4 -4
- package/server/liveness/methods/uploadIdentificationDocument/index.d.ts +6 -8
- package/utils/error.d.ts +19 -2
- package/utils/error.js +21 -2
- package/utils/types.d.ts +1 -0
- package/api/FaceMatchService.d.ts +0 -42
- package/api/FaceMatchService.js +0 -26
- package/api/TypificationService.d.ts +0 -90
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## Versão 5.4.0
|
|
4
|
+
- Foram adicionadas as funções de callback **onCameraStart** e **onCameraStop** para as funcionalidades de **Tipificação**, **OCR** e **Face Match**.
|
|
5
|
+
- Agora as funções de iniciar câmera para **Tipificação**, **OCR** e **Face Match** possuem a opção **facingMode**, que permitem que o usuário especifique a direção desejada da câmera
|
|
6
|
+
|
|
7
|
+
## Versão 5.3.0
|
|
8
|
+
- Foram adicionadas as versões para consumo da **Tipificação**, do **OCR** e do **Face Match**.
|
|
9
|
+
|
|
3
10
|
## Versão 5.2.0
|
|
4
11
|
|
|
5
12
|
### Mudanças
|
package/README.md
CHANGED
|
@@ -51,10 +51,319 @@ async function startSDK () {
|
|
|
51
51
|
startSDK()
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
+
## Envio de arquivos
|
|
55
|
+
Um ponto importante são os tipos dos arquivos que são suportados pelo SDK.
|
|
56
|
+
|
|
57
|
+
Para execução em navegadores e ambientes semelhantes, os tipos de arquivos suportados são **File** ou **Blob**.
|
|
58
|
+
|
|
59
|
+
Para ambientes Node.js, os tipos dos arquivos devem ser **string, ArrayBuffer, Buffer ou Buffer[]**.
|
|
60
|
+
|
|
61
|
+
## Utilização da biblioteca via CDN
|
|
62
|
+
Caso deseje utilizar a biblioteca via CDN, importando-a diretamente em uma tag **script**, basta utilizar o caminho especificado no exemplo abaixo, substituindo o **VERSION** pela versão desejada.
|
|
63
|
+
|
|
64
|
+
Ao importar a biblioteca via tag script, todas as funções do SDK ficarão disponíveis por meio da classe **SantoiDSDK**.
|
|
65
|
+
|
|
66
|
+
**Importante**: Nesse modo de utilização, as opções disponíveis para configuração dos métodos, assim como também as respostas dos métodos, são idênticas às descritas para a utilização em JavaScript de cada uma das funcionalidades, com a única diferença de que é necessário usar a classe da biblioteca.
|
|
67
|
+
|
|
68
|
+
```html
|
|
69
|
+
<body>
|
|
70
|
+
<button onclick="startTypification()">Iniciar tipificação</button>
|
|
71
|
+
<button onclick="startLiveness()">Iniciar liveness</button>
|
|
72
|
+
|
|
73
|
+
<!-- ... -->
|
|
74
|
+
|
|
75
|
+
<script src="https://cdn.jsdelivr.net/npm/santoid-sdk@VERSION/browser/index.js"></script>
|
|
76
|
+
|
|
77
|
+
<script>
|
|
78
|
+
function startTypification () {
|
|
79
|
+
SantoiDSDK.typification({
|
|
80
|
+
track: 'string',
|
|
81
|
+
token: 'string',
|
|
82
|
+
|
|
83
|
+
// ...
|
|
84
|
+
})
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function startLiveness () {
|
|
88
|
+
SantoiDSDK.livenessDetection({
|
|
89
|
+
track: 'string',
|
|
90
|
+
token: 'string',
|
|
91
|
+
|
|
92
|
+
// ...
|
|
93
|
+
})
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// ...
|
|
97
|
+
</script>
|
|
98
|
+
</body>
|
|
99
|
+
```
|
|
100
|
+
|
|
54
101
|
## Funcionalidades disponíveis
|
|
55
102
|
|
|
103
|
+
### Tipificação
|
|
104
|
+
Por meio do SDK é possível utilizar a funcionalidade de **Tipificação**, que permite reconhecer o tipo de um documento e, caso necessário, aplicar o sistema de OCR para extrair as informações de seus campos.
|
|
105
|
+
|
|
106
|
+
#### Utilização em JavaScript
|
|
107
|
+
Para utilizar a funcionalidade de Tipificação, é necessário importar a função de Tipificação e acioná-la passando as opções necessárias.
|
|
108
|
+
|
|
109
|
+
Para o caso da execução da função em um navegador ou ambientes parecidos é possível iniciar a câmera e usar o próprio SDK para tirar fotos para consumo ou enviar os arquivos manualmente.
|
|
110
|
+
|
|
111
|
+
Você também pode optar por fazer isso assim que a função inicial for chamada ou deixar para tirar as fotos/enviar arquivos em um momento posterior utilizando as opções adequadas.
|
|
112
|
+
|
|
113
|
+
```ts
|
|
114
|
+
import { typification } from 'santoid-sdk/client/core'
|
|
115
|
+
|
|
116
|
+
// ...
|
|
117
|
+
|
|
118
|
+
// Método 1 - Para iniciar câmera assim que a função for chamada
|
|
119
|
+
const typificationResponse = await typification({
|
|
120
|
+
token: 'string',
|
|
121
|
+
track: 'string',
|
|
122
|
+
customId: 'string',
|
|
123
|
+
|
|
124
|
+
startTheCameraImmediately: true,
|
|
125
|
+
|
|
126
|
+
onStart (params) {
|
|
127
|
+
// ...
|
|
128
|
+
},
|
|
129
|
+
|
|
130
|
+
// ...
|
|
131
|
+
})
|
|
132
|
+
|
|
133
|
+
// Método 2 - Para enviar arquivos assim que a função for chamada
|
|
134
|
+
const typificationResponse = await typification({
|
|
135
|
+
startTheCameraImmediately: false,
|
|
136
|
+
|
|
137
|
+
// ...
|
|
138
|
+
}, fileVariable)
|
|
139
|
+
|
|
140
|
+
// Método 3 - Para fazer isso depois
|
|
141
|
+
const typificationResponse = await typification({
|
|
142
|
+
startTheCameraImmediately: false,
|
|
143
|
+
|
|
144
|
+
// ...
|
|
145
|
+
})
|
|
146
|
+
|
|
147
|
+
typificationResponse.startCamera()
|
|
148
|
+
typificationResponse.captureImage()
|
|
149
|
+
|
|
150
|
+
// Ou
|
|
151
|
+
|
|
152
|
+
typificationResponse.sendFile(fileVariable)
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
#### Opções para a função typification (JavaScript)
|
|
156
|
+
|
|
157
|
+
| Nome da propriedade | Função | É obrigatório? |
|
|
158
|
+
| ------------------- | ------ | -------------- |
|
|
159
|
+
| token | Token de acesso obtido por meio da autenticação. | Sim |
|
|
160
|
+
| track | Identificador do processo que será utilizado. | Sim |
|
|
161
|
+
| customId | Identificador customizado para auditoria. | Não |
|
|
162
|
+
| startTheCameraImmediately | Booleano que determina se a câmera será acionada assim que a função for executada ou se será acionada manualmente depois. Por padrão, a câmera será acionada automaticamente. | Não |
|
|
163
|
+
| onStart | Função executada quando a verificação for iniciada. <br><br>Disponibiliza pelos parâmetros um objeto contendo a stream da transmissão (**videoStream**), caso disponível. | Não |
|
|
164
|
+
| onCameraStart | Função executada quando a câmera for iniciada. <br><br>Disponibiliza pelos parâmetros um objeto contendo a stream da transmissão (**videoStream**), caso disponível. | Não |
|
|
165
|
+
| onCameraStop | Função executada quando a câmera for interrompida. | Não |
|
|
166
|
+
| onUpdate | Função executada toda vez que ocorre uma atualização no status geral (quando alguma operação é iniciada ou concluída, quando ocorre erro, etc.). <br><br>Disponibiliza pelos parâmetros um objeto contendo as informações sobre a situação do processamento (qual o status atual, se está carregando, se existe erro, etc.) | Não |
|
|
167
|
+
| onValidationRequested | Função executada quando o status do processamento é "validation". Retorna informações da requisição para que o usuário consiga fazer a validação manual da requisição | Não |
|
|
168
|
+
| onError | Função executada quando ocorre um erro. <br><br>Disponibiliza pelos parâmetros a instância do erro, a qual contém um identificador (propriedade **code**). | Não |
|
|
169
|
+
| onSuccess | Função executada quando a verificação é finalizada com sucesso. <br><br>Disponibiliza pelos parâmetros um objeto com os resultados. | Não |
|
|
170
|
+
| onEnd | Função executada quando a verificação é finalizada, seja com erro ou com sucesso. | Não |
|
|
171
|
+
|
|
172
|
+
#### Retorno da função typification (JavaScript)
|
|
173
|
+
| Nome da propriedade | Função |
|
|
174
|
+
| ------------------- | ------ |
|
|
175
|
+
| startCamera | Função para iniciar a câmera manualmente. <br><br>É possível informar nos parâmetros a direção de câmera desejada (**facingMode**), seguindo um modelo semelhante ao das funções de controle de câmera do próprio JavaScript (No mobile, por exemplo, facingMode == 'user' para usar a câmera da frente e facingMode == 'environment' para usar a câmera de trás). <br><br>Por padrão o facingMode é 'user'. |
|
|
176
|
+
| stopCamera | Função para desligar a câmera manualmente. |
|
|
177
|
+
| captureImage | Função para capturar a imagem que será utilizada para consumo com a câmera. |
|
|
178
|
+
| getVideoStream | Função para obter a stream de vídeo da câmera, se ela estiver disponível. |
|
|
179
|
+
| sendFile | Função para enviar arquivos manualmente, iniciando também o processamento. |
|
|
180
|
+
|
|
181
|
+
#### Utilização em Node.js
|
|
182
|
+
A utilização da função de Tipificação em Node.js é idêntica à utilização em JavaScript normal para browsers e ambientes semelhantes, com a exceção das funções e propriedades relacionadas à câmera, que não estão disponíveis nesta versão.
|
|
183
|
+
|
|
184
|
+
#### Formato dos resultados
|
|
185
|
+
Os resultados podem ser obtidos por meio da função de callback **onSuccess** por meio dos parâmetros. Sua estrutura é baseada na interface **ITypificationResult**, a qual pode ser consultada mais abaixo na seção de **Tipos comuns**.
|
|
186
|
+
|
|
187
|
+
### OCR
|
|
188
|
+
Por meio do SDK também é possível utilizar a funcionalidade de **OCR** diretamente, que permite extrair as informações dos campos de um documento.
|
|
189
|
+
|
|
190
|
+
#### Utilização em JavaScript
|
|
191
|
+
Para utilizar a funcionalidade de OCR, é necessário importar a função de OCR e acioná-la passando as opções necessárias.
|
|
192
|
+
|
|
193
|
+
Para o caso da execução da função em um navegador ou ambientes parecidos é possível iniciar a câmera e usar o próprio SDK para tirar fotos para consumo ou enviar os arquivos manualmente.
|
|
194
|
+
|
|
195
|
+
Você também pode optar por fazer isso assim que a função inicial for chamada ou deixar para tirar as fotos/enviar arquivos em um momento posterior utilizando as opções adequadas.
|
|
196
|
+
|
|
197
|
+
```ts
|
|
198
|
+
import { ocr } from 'santoid-sdk/client/core'
|
|
199
|
+
|
|
200
|
+
// ...
|
|
201
|
+
|
|
202
|
+
// Método 1 - Para iniciar câmera assim que a função for chamada
|
|
203
|
+
const ocrResponse = await ocr({
|
|
204
|
+
token: 'string',
|
|
205
|
+
track: 'string',
|
|
206
|
+
customId: 'string',
|
|
207
|
+
|
|
208
|
+
startTheCameraImmediately: true,
|
|
209
|
+
|
|
210
|
+
onStart (params) {
|
|
211
|
+
// ...
|
|
212
|
+
},
|
|
213
|
+
|
|
214
|
+
// ...
|
|
215
|
+
})
|
|
216
|
+
|
|
217
|
+
// Método 2 - Para enviar arquivos assim que a função for chamada
|
|
218
|
+
const ocrResponse = await ocr({
|
|
219
|
+
startTheCameraImmediately: false,
|
|
220
|
+
|
|
221
|
+
// ...
|
|
222
|
+
}, fileVariable)
|
|
223
|
+
|
|
224
|
+
// Método 3 - Para fazer isso depois
|
|
225
|
+
const ocrResponse = await ocr({
|
|
226
|
+
startTheCameraImmediately: false,
|
|
227
|
+
|
|
228
|
+
// ...
|
|
229
|
+
})
|
|
230
|
+
|
|
231
|
+
ocrResponse.startCamera()
|
|
232
|
+
ocrResponse.captureImage()
|
|
233
|
+
|
|
234
|
+
// Ou
|
|
235
|
+
|
|
236
|
+
ocrResponse.sendFile(fileVariable)
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
#### Opções para a função ocr (JavaScript)
|
|
240
|
+
|
|
241
|
+
| Nome da propriedade | Função | É obrigatório? |
|
|
242
|
+
| ------------------- | ------ | -------------- |
|
|
243
|
+
| token | Token de acesso obtido por meio da autenticação. | Sim |
|
|
244
|
+
| track | Identificador do processo que será utilizado. | Sim |
|
|
245
|
+
| customId | Identificador customizado para auditoria. | Não |
|
|
246
|
+
| startTheCameraImmediately | Booleano que determina se a câmera será acionada assim que a função for executada ou se será acionada manualmente depois. Por padrão, a câmera será acionada automaticamente. | Não |
|
|
247
|
+
| onStart | Função executada quando a verificação for iniciada. <br><br>Disponibiliza pelos parâmetros um objeto contendo a stream da transmissão (**videoStream**), caso disponível. | Não |
|
|
248
|
+
| onCameraStart | Função executada quando a câmera for iniciada. <br><br>Disponibiliza pelos parâmetros um objeto contendo a stream da transmissão (**videoStream**), caso disponível. | Não |
|
|
249
|
+
| onCameraStop | Função executada quando a câmera for interrompida. | Não |
|
|
250
|
+
| onUpdate | Função executada toda vez que ocorre uma atualização no status geral (quando alguma operação é iniciada ou concluída, quando ocorre erro, etc.). <br><br>Disponibiliza pelos parâmetros um objeto contendo as informações sobre a situação do processamento (qual o status atual, se está carregando, se existe erro, etc.) | Não |
|
|
251
|
+
| onValidationRequested | Função executada quando o status do processamento é "validation". Retorna informações da requisição para que o usuário consiga fazer a validação manual da requisição | Não |
|
|
252
|
+
| onError | Função executada quando ocorre um erro. <br><br>Disponibiliza pelos parâmetros a instância do erro, a qual contém um identificador (propriedade **code**). | Não |
|
|
253
|
+
| onSuccess | Função executada quando a verificação é finalizada com sucesso. <br><br>Disponibiliza pelos parâmetros um objeto com os resultados. | Não |
|
|
254
|
+
| onEnd | Função executada quando a verificação é finalizada, seja com erro ou com sucesso. | Não |
|
|
255
|
+
|
|
256
|
+
#### Retorno da função ocr (JavaScript)
|
|
257
|
+
| Nome da propriedade | Função |
|
|
258
|
+
| ------------------- | ------ |
|
|
259
|
+
| startCamera | Função para iniciar a câmera manualmente. <br><br>É possível informar nos parâmetros a direção de câmera desejada (**facingMode**), seguindo um modelo semelhante ao das funções de controle de câmera do próprio JavaScript (No mobile, por exemplo, facingMode == 'user' para usar a câmera da frente e facingMode == 'environment' para usar a câmera de trás). <br><br>Por padrão o facingMode é 'user'. |
|
|
260
|
+
| stopCamera | Função para desligar a câmera manualmente. |
|
|
261
|
+
| captureImage | Função para capturar a imagem que será utilizada para consumo com a câmera. |
|
|
262
|
+
| getVideoStream | Função para obter a stream de vídeo da câmera, se ela estiver disponível. |
|
|
263
|
+
| sendFile | Função para enviar arquivos manualmente, iniciando também o processamento. |
|
|
264
|
+
|
|
265
|
+
#### Utilização em Node.js
|
|
266
|
+
A utilização da função de OCR em Node.js é idêntica à utilização em JavaScript normal para browsers e ambientes semelhantes, com a exceção das funções e propriedades relacionadas à câmera, que não estão disponíveis nesta versão.
|
|
267
|
+
|
|
268
|
+
#### Formato dos resultados
|
|
269
|
+
Os resultados podem ser obtidos por meio da função de callback **onSuccess** por meio dos parâmetros. Sua estrutura é baseada na interface **IOcrResult**, a qual pode ser consultada mais abaixo na seção de **Tipos comuns**.
|
|
270
|
+
|
|
271
|
+
### Face Match
|
|
272
|
+
Por meio do SDK também é possível utilizar a funcionalidade de **Face Match**, que permite comparar duas faces e verificar se são iguais. É possível enviar uma imagem que contenha dois rostos para comparação, ou enviar duas imagens, com um rosto em cada uma.
|
|
273
|
+
|
|
274
|
+
#### Utilização em JavaScript
|
|
275
|
+
O uso da função de Face Match é muito semelhante ao das funções de Tipificação e OCR, com a única diferença de que é preciso lidar com até duas imagens.
|
|
276
|
+
|
|
277
|
+
Ou seja, se for utilizar o sistema de câmera, você pode optar por tirar uma única foto ou tirar duas fotos. E se for utilizar o envio de arquivos manual, pode optar por enviar um ou dois arquivos.
|
|
278
|
+
|
|
279
|
+
E em cada um desses modos, pode optar por realizar a obtenção/fornecimento de imagens assim que executar a função ou posteriormente.
|
|
280
|
+
|
|
281
|
+
Outro detalhe é que, caso opte por utilizar o sistema embutido de captura de fotos, o processamento será iniciado automaticamente com uma única foto. Caso deseje tirar duas, você pode utilizar a opção **startProcessing** dos métodos de captura de imagem para controlar se deseja ou não iniciar o processamento.
|
|
282
|
+
|
|
283
|
+
```ts
|
|
284
|
+
import { faceMatch } from 'santoid-sdk/client/core'
|
|
285
|
+
|
|
286
|
+
// ...
|
|
287
|
+
|
|
288
|
+
// Método 1 - Para iniciar câmera assim que a função for chamada
|
|
289
|
+
const faceMatchResponse = await faceMatch({
|
|
290
|
+
token: 'string',
|
|
291
|
+
track: 'string',
|
|
292
|
+
customId: 'string',
|
|
293
|
+
|
|
294
|
+
startTheCameraImmediately: true,
|
|
295
|
+
|
|
296
|
+
onStart (params) {
|
|
297
|
+
// ...
|
|
298
|
+
},
|
|
299
|
+
|
|
300
|
+
// ...
|
|
301
|
+
})
|
|
302
|
+
|
|
303
|
+
// Caso deseje tirar uma única foto
|
|
304
|
+
faceMatchResponse.captureFirstImage()
|
|
305
|
+
|
|
306
|
+
// Caso deseje tirar duas fotos
|
|
307
|
+
faceMatchResponse.captureFirstImage({ startProcessing: false })
|
|
308
|
+
faceMatchResponse.captureSecondImage()
|
|
309
|
+
|
|
310
|
+
// Método 2 - Para enviar arquivos assim que a função for chamada
|
|
311
|
+
const faceMatchResponse = await faceMatch({
|
|
312
|
+
startTheCameraImmediately: false,
|
|
313
|
+
|
|
314
|
+
// ...
|
|
315
|
+
}, fileVariable1, fileVariable2)
|
|
316
|
+
|
|
317
|
+
// Método 3 - Para fazer isso depois
|
|
318
|
+
const faceMatchResponse = await faceMatch({
|
|
319
|
+
startTheCameraImmediately: false,
|
|
320
|
+
|
|
321
|
+
// ...
|
|
322
|
+
})
|
|
323
|
+
|
|
324
|
+
faceMatchResponse.startCamera()
|
|
325
|
+
faceMatchResponse.captureFirstImage()
|
|
326
|
+
|
|
327
|
+
// Ou
|
|
328
|
+
|
|
329
|
+
faceMatchResponse.sendFiles(fileVariable1, fileVariable2)
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
#### Opções para a função faceMatch (JavaScript)
|
|
333
|
+
|
|
334
|
+
| Nome da propriedade | Função | É obrigatório? |
|
|
335
|
+
| ------------------- | ------ | -------------- |
|
|
336
|
+
| token | Token de acesso obtido por meio da autenticação. | Sim |
|
|
337
|
+
| track | Identificador do processo que será utilizado. | Sim |
|
|
338
|
+
| customId | Identificador customizado para auditoria. | Não |
|
|
339
|
+
| startTheCameraImmediately | Booleano que determina se a câmera será acionada assim que a função for executada ou se será acionada manualmente depois. Por padrão, a câmera será acionada automaticamente. | Não |
|
|
340
|
+
| onStart | Função executada quando a verificação for iniciada. <br><br>Disponibiliza pelos parâmetros um objeto contendo a stream da transmissão (**videoStream**), caso disponível. | Não |
|
|
341
|
+
| onCameraStart | Função executada quando a câmera for iniciada. <br><br>Disponibiliza pelos parâmetros um objeto contendo a stream da transmissão (**videoStream**), caso disponível. | Não |
|
|
342
|
+
| onCameraStop | Função executada quando a câmera for interrompida. | Não |
|
|
343
|
+
| onUpdate | Função executada toda vez que ocorre uma atualização no status geral (quando alguma operação é iniciada ou concluída, quando ocorre erro, etc.). <br><br>Disponibiliza pelos parâmetros um objeto contendo as informações sobre a situação do processamento (qual o status atual, se está carregando, se existe erro, etc.) | Não |
|
|
344
|
+
| onValidationRequested | Função executada quando o status do processamento é "validation". Retorna informações da requisição para que o usuário consiga fazer a validação manual da requisição | Não |
|
|
345
|
+
| onError | Função executada quando ocorre um erro. <br><br>Disponibiliza pelos parâmetros a instância do erro, a qual contém um identificador (propriedade **code**). | Não |
|
|
346
|
+
| onSuccess | Função executada quando a verificação é finalizada com sucesso. <br><br>Disponibiliza pelos parâmetros um objeto com os resultados. | Não |
|
|
347
|
+
| onEnd | Função executada quando a verificação é finalizada, seja com erro ou com sucesso. | Não |
|
|
348
|
+
|
|
349
|
+
#### Retorno da função faceMatch (JavaScript)
|
|
350
|
+
| Nome da propriedade | Função |
|
|
351
|
+
| ------------------- | ------ |
|
|
352
|
+
| startCamera | Função para iniciar a câmera manualmente. <br><br>É possível informar nos parâmetros a direção de câmera desejada (**facingMode**), seguindo um modelo semelhante ao das funções de controle de câmera do próprio JavaScript (No mobile, por exemplo, facingMode == 'user' para usar a câmera da frente e facingMode == 'environment' para usar a câmera de trás). <br><br>Por padrão o facingMode é 'user'. |
|
|
353
|
+
| stopCamera | Função para desligar a câmera manualmente. |
|
|
354
|
+
| captureFirstImage | Função para capturar a primeira imagem que será utilizada para o Face Match. <br><br> Por padrão, iniciará o processamento após a captura, porém caso deseje utilizar duas imagens você pode evitar isso utilizando a opção **startProcessing**. |
|
|
355
|
+
| captureSecondImage | Função para capturar a segunda imagem que será utilizada para o Face Match. <br><br> Por padrão, iniciará o processamento após a captura, porém caso deseje impedir isso você pode utilizar a opção **startProcessing**. |
|
|
356
|
+
| getVideoStream | Função para obter a stream de vídeo da câmera, se ela estiver disponível. |
|
|
357
|
+
| sendFiles | Função para enviar arquivos manualmente, iniciando também o processamento. Como o Face Match suporta até 2 arquivos, você pode escolher entre enviar apenas 1 arquivo com dois rostos para análise ou 2 arquivos com 1 rosto em cada. |
|
|
358
|
+
|
|
359
|
+
#### Utilização em Node.js
|
|
360
|
+
A utilização da função de Face Match em Node.js é idêntica à utilização em JavaScript normal para browsers e ambientes semelhantes, com a exceção das funções e propriedades relacionadas à câmera, que não estão disponíveis nesta versão.
|
|
361
|
+
|
|
362
|
+
#### Formato dos resultados
|
|
363
|
+
Os resultados podem ser obtidos por meio da função de callback **onSuccess** por meio dos parâmetros. Sua estrutura é baseada na interface **IFaceMatchResult**, a qual pode ser consultada mais abaixo na seção de **Tipos comuns**.
|
|
364
|
+
|
|
56
365
|
### Prova de Vida
|
|
57
|
-
|
|
366
|
+
O SDK conta com a funcionalidade de **Prova de Vida**, que possibilita a verificação do usuário atual, avaliando se uma pessoa real está realizando as atividades online por meio de uma rápida análise facial.
|
|
58
367
|
|
|
59
368
|
#### Utilização em JavaScript
|
|
60
369
|
Para utilizar a funcionalidade de Prova de Vida, é necessário importar a função para iniciar a verificação e passar alguns valores dentro do objeto de opções, como no exemplo abaixo:
|
|
@@ -102,7 +411,7 @@ As propriedades disponíveis para utilização no objeto de opções estão list
|
|
|
102
411
|
| onEnd | Função executada quando a verificação é finalizada, seja com erro ou com sucesso. | Não |
|
|
103
412
|
|
|
104
413
|
<br>
|
|
105
|
-
Caso a função seja executada em um navegador (ou ambiente semelhante
|
|
414
|
+
Caso a função seja executada em um navegador (ou ambiente semelhante), não é obrigatório fornecer uma função que retorne os frames para verificação (getNextFrame), pois o próprio SDK iniciará a câmera e realizará todo o processo caso a função não seja fornecida.
|
|
106
415
|
|
|
107
416
|
#### Retorno da função livenessDetection (JavaScript)
|
|
108
417
|
A função livenessDetection retorna alguns métodos que possibilitam um melhor controle da verificação.
|
|
@@ -182,34 +491,6 @@ const livenessDetectionResponse = livenessDetection({
|
|
|
182
491
|
const { stopLivenessDetection, pauseGettingFrames, resumeGettingFrames } = livenessDetectionResponse
|
|
183
492
|
```
|
|
184
493
|
|
|
185
|
-
#### Utilização via CDN
|
|
186
|
-
Caso deseje utilizar a biblioteca via CDN, importando-a diretamente em uma tag **script**, basta utilizar o caminho especificado no exemplo abaixo.
|
|
187
|
-
|
|
188
|
-
Ao importar a biblioteca via tag script, a função **livenessDetection** ficará disponível por meio da classe **SantoiDSDK**.
|
|
189
|
-
|
|
190
|
-
Substitua o **VERSION** pela versão desejada.
|
|
191
|
-
|
|
192
|
-
Nesse modo de utilização, as opções disponíveis para configuração são as mesmas da versão JavaScript.
|
|
193
|
-
|
|
194
|
-
```html
|
|
195
|
-
<body>
|
|
196
|
-
<button onclick="startLiveness()">Iniciar</button>
|
|
197
|
-
|
|
198
|
-
<script src="https://cdn.jsdelivr.net/npm/santoid-sdk@VERSION/browser/index.js"></script>
|
|
199
|
-
|
|
200
|
-
<script>
|
|
201
|
-
function startLiveness () {
|
|
202
|
-
SantoiDSDK.livenessDetection({
|
|
203
|
-
track: 'string',
|
|
204
|
-
token: 'string',
|
|
205
|
-
|
|
206
|
-
// ...
|
|
207
|
-
})
|
|
208
|
-
}
|
|
209
|
-
</script>
|
|
210
|
-
</body>
|
|
211
|
-
```
|
|
212
|
-
|
|
213
494
|
### Teste do Fluxo Completo
|
|
214
495
|
Com a funcionalidade do teste do fluxo completo do Santo iD, é possível iniciar a análise de prova de vida juntamente com a análise de um documento de identificação enviado, realizando também a comparação da face encontrada na prova de vida com a do documento ao final do processo.
|
|
215
496
|
|
|
@@ -338,111 +619,16 @@ Em que:
|
|
|
338
619
|
```typescript
|
|
339
620
|
type TResultStatuses = 'success' | 'error' | null
|
|
340
621
|
|
|
341
|
-
|
|
342
|
-
count: number
|
|
343
|
-
customerRequestId: string
|
|
344
|
-
domain: string
|
|
345
|
-
error: object
|
|
346
|
-
executionDatetime: string
|
|
347
|
-
requestId: string
|
|
348
|
-
requestType: string
|
|
349
|
-
service: string
|
|
350
|
-
status: string
|
|
351
|
-
track: string
|
|
352
|
-
|
|
353
|
-
documents: Array<{
|
|
354
|
-
typification: {
|
|
355
|
-
id: string
|
|
356
|
-
score: number
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
error?: {
|
|
360
|
-
message: string
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
ocr: {
|
|
364
|
-
template: string
|
|
365
|
-
|
|
366
|
-
labels: Array<{
|
|
367
|
-
x: number
|
|
368
|
-
y: number
|
|
369
|
-
w: number
|
|
370
|
-
h: number
|
|
371
|
-
bottomRight: number[]
|
|
372
|
-
topLeft: number[]
|
|
373
|
-
|
|
374
|
-
label: string | null
|
|
375
|
-
|
|
376
|
-
text: string | null
|
|
377
|
-
ocr_score: number | null
|
|
378
|
-
crop: string | null
|
|
379
|
-
ocrInterpretive?: boolean | string | null
|
|
380
|
-
ocrList?: Array<{
|
|
381
|
-
x: number
|
|
382
|
-
y: number
|
|
383
|
-
w: number
|
|
384
|
-
h: number
|
|
385
|
-
bottomRight: number[]
|
|
386
|
-
topLeft: number[]
|
|
387
|
-
|
|
388
|
-
dataField?: string
|
|
389
|
-
dataFieldValue?: boolean
|
|
390
|
-
|
|
391
|
-
label: string | null
|
|
392
|
-
ocr?: string | null
|
|
393
|
-
ocr_score?: number
|
|
394
|
-
cropBase64?: string | null
|
|
395
|
-
}> | null
|
|
396
|
-
|
|
397
|
-
serpro_query?: {
|
|
398
|
-
serpro_data: any
|
|
399
|
-
search_logs: {
|
|
400
|
-
document: string
|
|
401
|
-
type: string
|
|
402
|
-
search_time: string
|
|
403
|
-
status_code: number
|
|
404
|
-
message: string
|
|
405
|
-
}
|
|
406
|
-
} | null
|
|
407
|
-
|
|
408
|
-
validation: {
|
|
409
|
-
type: string | null
|
|
410
|
-
value: number | string | boolean
|
|
411
|
-
} | null
|
|
412
|
-
|
|
413
|
-
validationSerpro?: Record<string, number | boolean>
|
|
414
|
-
}> | null
|
|
415
|
-
} | null
|
|
416
|
-
}>
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
export type TPositions = 'front' | 'right' | 'left' | 'up' | 'bottom'
|
|
622
|
+
type TPositions = 'front' | 'right' | 'left' | 'up' | 'bottom'
|
|
420
623
|
|
|
421
624
|
interface ILivenessResults {
|
|
422
625
|
livenessId: string
|
|
423
626
|
successFrames: Record<TPositions, Blob>
|
|
424
627
|
}
|
|
425
|
-
|
|
426
|
-
interface IFaceMatchResult {
|
|
427
|
-
domain: string
|
|
428
|
-
track: string
|
|
429
|
-
service: string
|
|
430
|
-
requestId: string
|
|
431
|
-
requestType: string
|
|
432
|
-
customerRequestId: string
|
|
433
|
-
executionDatetime: string
|
|
434
|
-
error?: {
|
|
435
|
-
error: string
|
|
436
|
-
}
|
|
437
|
-
status: string
|
|
438
|
-
comparison_score: number
|
|
439
|
-
similarity_score: number
|
|
440
|
-
match: boolean
|
|
441
|
-
fileImage1?: string
|
|
442
|
-
fileImage2?: string
|
|
443
|
-
}
|
|
444
628
|
```
|
|
445
629
|
|
|
630
|
+
Os tipos **ITypificationResult** e **IFaceMatchResult** podem ser conferidos na seção de **Tipos comuns**, disponível mais a frente na documentação.
|
|
631
|
+
|
|
446
632
|
#### Utilização em Node.js
|
|
447
633
|
De forma semelhante à funcionalidade da Prova de Vida, para o Node.js o caminho da importação muda
|
|
448
634
|
e a função **getNextFrame** passa a ser obrigatória e deve ser fornecida às opções para o livenessDetection.
|
|
@@ -470,25 +656,151 @@ const uploadIdentificationDocumentResponse = uploadIdentificationDocument({
|
|
|
470
656
|
})
|
|
471
657
|
```
|
|
472
658
|
|
|
659
|
+
## Tipos comuns
|
|
660
|
+
Esta seção destina-se a disponibilizar os tipos dos resultados de algumas funções. Algumas funcionalidades possuem resultados com estruturas parecidas internamente.
|
|
473
661
|
|
|
474
|
-
|
|
475
|
-
De forma semelhante à funcionalidade da Prova de Vida, a funcionalidade do teste do fluxo
|
|
476
|
-
completo também é disponibilizada globalmente por meio da classe SantoiDSDK.
|
|
662
|
+
A tipificação, por exemplo, pode ser configurada para iniciar também o OCR dos campos e, consequentemente, conter resultados de OCR em seu interior.
|
|
477
663
|
|
|
478
|
-
|
|
664
|
+
Por essa razão, para simplificar o entendimento, serão disponibilizados a seguir as interfaces dos resultados dessas funcionalidades de forma simplificada.
|
|
479
665
|
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
666
|
+
### Estrutura base
|
|
667
|
+
```ts
|
|
668
|
+
interface IBaseAsyncResult {
|
|
669
|
+
count: number
|
|
670
|
+
customerRequestId: string
|
|
671
|
+
domain: string
|
|
672
|
+
error: object
|
|
673
|
+
executionDatetime: string
|
|
674
|
+
requestId: string
|
|
675
|
+
requestType: string
|
|
676
|
+
service: string
|
|
677
|
+
status: string
|
|
678
|
+
track: string
|
|
679
|
+
}
|
|
680
|
+
```
|
|
483
681
|
|
|
484
|
-
|
|
682
|
+
### Resultados da Tipificação
|
|
683
|
+
```ts
|
|
684
|
+
// Resultados completos da tipificação
|
|
685
|
+
interface ITypificationResult extends IBaseAsyncResult {
|
|
686
|
+
documents: ITypificationDocumentResult[]
|
|
687
|
+
}
|
|
485
688
|
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
689
|
+
// Resultados para um documento individual
|
|
690
|
+
interface ITypificationDocumentResult {
|
|
691
|
+
typification: {
|
|
692
|
+
id: string
|
|
693
|
+
score: number
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
error?: {
|
|
697
|
+
message: string
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
ocr?: {
|
|
701
|
+
template: string
|
|
702
|
+
|
|
703
|
+
labels: ICropResult[] | null
|
|
704
|
+
} | boolean
|
|
705
|
+
}
|
|
706
|
+
```
|
|
707
|
+
|
|
708
|
+
### Resultados do OCR
|
|
709
|
+
```ts
|
|
710
|
+
// Resultados completos do OCR
|
|
711
|
+
interface IOcrResult extends IBaseAsyncResult {
|
|
712
|
+
template: string
|
|
713
|
+
|
|
714
|
+
documents: IOcrDocumentResult[]
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
// Resultados para um documento individual
|
|
718
|
+
interface IOcrDocumentResult {
|
|
719
|
+
error?: {
|
|
720
|
+
message: string
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
ocr: {
|
|
724
|
+
template: string
|
|
725
|
+
|
|
726
|
+
labels: ICropResult[] | null
|
|
727
|
+
} | boolean
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
// Resultados para um único campo
|
|
731
|
+
interface ICropResult {
|
|
732
|
+
x: number
|
|
733
|
+
y: number
|
|
734
|
+
w: number
|
|
735
|
+
h: number
|
|
736
|
+
bottomRight: number[]
|
|
737
|
+
topLeft: number[]
|
|
738
|
+
|
|
739
|
+
label: string | null
|
|
740
|
+
|
|
741
|
+
text: string | null
|
|
742
|
+
ocr_score: number | null
|
|
743
|
+
crop: string | null
|
|
744
|
+
ocrInterpretive?: boolean | string | null
|
|
745
|
+
|
|
746
|
+
ocrList: IOcrListResult[] | null
|
|
747
|
+
|
|
748
|
+
serpro_query?: {
|
|
749
|
+
serpro_data: any
|
|
750
|
+
search_logs: {
|
|
751
|
+
document: string
|
|
752
|
+
type: string
|
|
753
|
+
search_time: string
|
|
754
|
+
status_code: number
|
|
755
|
+
message: string
|
|
491
756
|
}
|
|
492
|
-
|
|
493
|
-
|
|
757
|
+
} | null
|
|
758
|
+
|
|
759
|
+
validation: {
|
|
760
|
+
type: string | null
|
|
761
|
+
value: number | string | boolean
|
|
762
|
+
} | null
|
|
763
|
+
|
|
764
|
+
validationSerpro?: Record<string, number | boolean>
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
// Resultados para os campos internos de um campo com OCR em lista configurado
|
|
768
|
+
interface IOcrListResult {
|
|
769
|
+
x: number
|
|
770
|
+
y: number
|
|
771
|
+
w: number
|
|
772
|
+
h: number
|
|
773
|
+
bottomRight: number[]
|
|
774
|
+
topLeft: number[]
|
|
775
|
+
|
|
776
|
+
dataField?: string
|
|
777
|
+
dataFieldValue?: boolean
|
|
778
|
+
|
|
779
|
+
label: string | null
|
|
780
|
+
ocr?: string | null
|
|
781
|
+
ocr_score?: number
|
|
782
|
+
cropBase64?: string | null
|
|
783
|
+
}
|
|
494
784
|
```
|
|
785
|
+
|
|
786
|
+
### Resultados do Face Match
|
|
787
|
+
```ts
|
|
788
|
+
interface IFaceMatchResult {
|
|
789
|
+
domain: string
|
|
790
|
+
track: string
|
|
791
|
+
service: string
|
|
792
|
+
requestId: string
|
|
793
|
+
requestType: string
|
|
794
|
+
customerRequestId: string
|
|
795
|
+
executionDatetime: string
|
|
796
|
+
error?: {
|
|
797
|
+
error: string
|
|
798
|
+
}
|
|
799
|
+
status: string
|
|
800
|
+
comparison_score: number
|
|
801
|
+
similarity_score: number
|
|
802
|
+
match: boolean
|
|
803
|
+
fileImage1?: string
|
|
804
|
+
fileImage2?: string
|
|
805
|
+
}
|
|
806
|
+
```
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { AbstractService } from './AbstractService';
|
|
2
|
+
export declare class ApiAsyncService extends AbstractService {
|
|
3
|
+
resultsRoute: string;
|
|
4
|
+
constructor(asyncServiceOptions: IAsyncServiceConstructorOptions, ...abstractServiceOptions: ConstructorParameters<typeof AbstractService>);
|
|
5
|
+
get(requestId: string): Promise<IRequestStatusGetResponse>;
|
|
6
|
+
}
|
|
7
|
+
interface IAsyncServiceConstructorOptions {
|
|
8
|
+
resultsRoute: string;
|
|
9
|
+
}
|
|
10
|
+
export interface IAsyncProcessingStartedResponse {
|
|
11
|
+
createdAt: string;
|
|
12
|
+
message: string;
|
|
13
|
+
requestId: string;
|
|
14
|
+
}
|
|
15
|
+
export interface IRequestStatusGetResponse {
|
|
16
|
+
id: string;
|
|
17
|
+
status: string;
|
|
18
|
+
fileURL?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface IBaseAsyncResult {
|
|
21
|
+
count: number;
|
|
22
|
+
customerRequestId: string;
|
|
23
|
+
domain: string;
|
|
24
|
+
error: object;
|
|
25
|
+
executionDatetime: string;
|
|
26
|
+
requestId: string;
|
|
27
|
+
requestType: string;
|
|
28
|
+
service: string;
|
|
29
|
+
status: string;
|
|
30
|
+
track: string;
|
|
31
|
+
}
|
|
32
|
+
export {};
|