> For the complete documentation index, see [llms.txt](https://docs.facephi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.facephi.com/docs.facephi-pt-br/sdks/sdk-web/componentes/sdk-provider/metodos/checkcapabilities.md).

# checkCapabilities

Verifica se o dispositivo atende aos Requisitos mínimos antes de montar o SDK.

## Detalhes

Verifique se o navegador e o dispositivo atendem aos Requisitos mínimos para executar o Fluxo biométrico, **antes** de montar `<facephi-sdk-provider>` no DOM.

### Sintaxe

```typescript
import { checkCapabilities } from '@facephi/sdk-web-wc/capabilities.mjs';

const { camera, wasm, browser } = await checkCapabilities();
```

## Descrição

Função exportada por `@facephi/sdk-web-wc` no subpath `/capabilities.mjs`. Permite decidir, antes de iniciar a sessão, se o usuário pode continuar neste dispositivo ou se convém direcioná-lo para outro dispositivo ou para outro fluxo de negócio.

Não requer `apiKey`, não valida licença e não baixa recursos. O ponto de entrada não tem dependências, então não traz o motor, os idiomas nem os componentes de interface.

Substitui o método `checkCapabilities()` dos widgets Legacy.

### Valor retornado

`Promise<WidgetCheckCapabilities>`, com três booleanos:

| Propriedade | Significado                                                           |
| ----------- | --------------------------------------------------------------------- |
| `camera`    | Foi detectado pelo menos um dispositivo de entrada de vídeo.          |
| `wasm`      | O WebAssembly está disponível e pode compilar e instanciar um módulo. |
| `browser`   | As APIs do navegador necessárias para os widgets estão presentes.     |

### Considerações

{% hint style="warning" %}
`camera` é um **sinal, não uma garantia**. Trate-a como uma condição flexível: ofereça sempre uma rota alternativa **e** uma nova tentativa, nunca um beco sem saída.
{% endhint %}

* A verificação **não chama `getUserMedia`**, então não exibe nenhuma caixa de diálogo de permissões de câmera. Pode ser invocada ao carregar a página sem atrito para o usuário.
* Como contrapartida, os navegadores que ocultam os dispositivos até que a permissão seja concedida (Safari e outros baseados em WebKit) retornam `camera: false` em um dispositivo perfeitamente válido.
* Em uma origem insegura (`http` que não seja `localhost`), `navigator.mediaDevices` não existe e `camera` será sempre `false`.
* A verificação não aplica o filtro antifraude de câmera que os widgets realmente executam ao serem montados. Uma câmera virtual passa nesta verificação e, ainda assim, é rejeitada depois.

`wasm` e `browser` são, de fato, condições rígidas: se alguma for `false`, o Fluxo biométrico não pode ser executado nesse navegador.

***

## Exemplo

```jsx
import { checkCapabilities } from '@facephi/sdk-web-wc/capabilities.mjs';

const { camera, wasm, browser } = await checkCapabilities();

if (!wasm || !browser) {
  // Condição rígida: este navegador não pode executar o fluxo.
  return redirigirA('/navegador-no-compatible');
}

if (!camera) {
  // Condição flexível: oferecer continuar em outro dispositivo, permitindo uma nova tentativa.
  return redirigirA('/continuar-en-otro-dispositivo');
}

<facephi-sdk-provider apikey={process.env.FACEPHI_SDK_APIKEY} />
```

### Uso via CDN, sem empacotador

```html
<script type="module">
  import { checkCapabilities } from 'https://cdn.facephi.pro/@facephi/sdk-web-wc@latest/bundle/capabilities.js';

  const { camera, wasm, browser } = await checkCapabilities();
</script>
```

### Uso direto do Widget, sem SDK

Os pacotes dos widgets expõem a mesma função em seu próprio subpath, disponível a partir de `@facephi/selphi-web-component@6.40.0` e `@facephi/selphid-web-component@6.39.0`. Em versões anteriores, o subpath não existe e o import falha com `ERR_MODULE_NOT_FOUND`.

```typescript
// Selphi
import { checkCapabilities } from '@facephi/selphi-web-component/capabilities.mjs';

// SelphID
import { checkCapabilities } from '@facephi/selphid-web-component/capabilities.mjs';
```
