@brasil-interface/cli
Version:
657 lines (479 loc) • 22 kB
Markdown
# Brasil Interface - Cli
## Sumário
- [Brasil Interface - Cli](#brasil-interface---cli)
- [Sumário](#sumário)
- [Descrição](#descrição)
- [Instalação](#instalação)
- [Como usar](#como-usar)
- [Utils CLI](#utils-cli)
- [CPF](#cpf)
- [Validar CPF](#validar-cpf)
- [Gerar CPF](#gerar-cpf)
- [Aplicar máscara em CPF](#aplicar-máscara-em-cpf)
- [Remover máscara de CPF](#remover-máscara-de-cpf)
- [Verificar estado de origem de CPF](#verificar-estado-de-origem-de-cpf)
- [CNPJ](#cnpj)
- [Validar CNPJ](#validar-cnpj)
- [Gerar CNPJ](#gerar-cnpj)
- [Aplicar máscara em CNPJ](#aplicar-máscara-em-cnpj)
- [Remover máscara de CNPJ](#remover-máscara-de-cnpj)
- [PIS](#pis)
- [Validar PIS](#validar-pis)
- [Gerar PIS](#gerar-pis)
- [Aplicar máscara em PIS](#aplicar-máscara-em-pis)
- [Remover máscara de PIS](#remover-máscara-de-pis)
- [CNH](#cnh)
- [Validar CNH](#validar-cnh)
- [Gerar CNH](#gerar-cnh)
- [RG](#rg)
- [Validar RG](#validar-rg)
- [Gerar RG](#gerar-rg)
- [Aplicar máscara em RG](#aplicar-máscara-em-rg)
- [Remover máscara de RG](#remover-máscara-de-rg)
- [Sdks CLI](#sdks-cli)
- [Cep Aberto](#cep-aberto)
- [Pesquisar CEP por número de CEP](#pesquisar-cep-por-número-de-cep)
- [Pesquisar CEP por Coordenadas](#pesquisar-cep-por-coordenadas)
- [Pesquisar CEP por Endereço](#pesquisar-cep-por-endereço)
- [Pesquisar CEP por Estado](#pesquisar-cep-por-estado)
- [Atualizar uma lista de ceps](#atualizar-uma-lista-de-ceps)
- [Como contribuir](#como-contribuir)
- [Contribuidores](#contribuidores)
- [Autor](#autor)
- [Licença](#licença)
## Descrição
Este projeto foi desenvolvido para facilitar o acesso de desenvolvedores as funcionalidades presentes nas libs do projeto [Brasil Interface](https://github.com/pietrobondioli/brasil-interface).
## Instalação
```bash
yarn global add @brasil-interface/cli
```
ou
```bash
npm install -g @brasil-interface/cli
```
## Como usar
Ao instalar a cli, você terá acesso a um comando chamado `brasili`. Este comando possui alguns sub-comandos que são as funcionalidades disponíveis na cli. Para saber mais sobre cada funcionalidade, basta executar o comando `brasili --help` e você verá uma lista com todos os sub-comandos disponíveis e uma breve descrição sobre cada um deles. Para saber mais sobre cada sub-comando, basta executar o comando `brasili <sub-comando> --help` e você verá uma descrição mais detalhada sobre o sub-comando.
## Utils CLI
Os comandos tendem a seguir o mesmo padrão de nomenclatura dos sub-comandos. Então para fins de brevidade, o maior detalhamento será feito apenas para o sub-comando `cpf`, e para os outros comandos apenas haverá maior detalhamento caso haja alguma particularidade ou um novo comando seja adicionado.
### CPF
Note que todos os comandos terão algumas opções em comum, para fins de brevidade, estas opções serão listadas aqui:
| Opção | Descrição |
| ---------------------------- | ----------------------------------------------------------- |
| `-i, --input <input_file>` | Arquivo de entrada com os CPFs a serem processados. |
| `-o, --output <output_file>` | Arquivo de saída com o resultado do comando. |
| `-c, --copy` | Copiar o resultado da pesquisa para a área de transferência |
#### Validar CPF
```bash
brasili cpf validate [...cpfs] -i <input_file> -o <output_file>
```
Validar um único CPF:
```bash
brasili cpf validate 04379547060
```
Validar uma lista de CPFs:
```bash
brasili cpf validate 04379547060,04379547061,04379547062
```
ou ainda:
Validar uma lista de CPFs em formato JSON:
```bash
brasili cpf validate '["04379547060","04379547061"]'
```
Validar uma lista de CPFs em formato JSON e salvar o resultado em um arquivo:
```bash
brasili cpf validate '["04379547060","04379547061"]' -o cpf-validation.json
```
Validar uma lista de CPFs a partir de um arquivo:
```txt
// cpf-list.txt
04379547060,04379547061
```
```bash
brasili cpf validate -i cpf-list.txt
```
O resultado de qualquer uma das validações acima será uma lista de objetos com o CPF e o resultado da validação:
```json
[
{
"cpf": "04379547060",
"valid": true
},
{
"cpf": "04379547061",
"valid": false
}
]
```
#### Gerar CPF
```bash
brasili cpf generate -a <amount> -o <output_file> --mask
```
| Opção | Descrição |
| ----------------------- | ------------------------------------------------------------------------- |
| `-a, --amount <amount>` | Quantidade de CPFs a serem gerados. |
| `-m, --mask` | Aplicar máscara nos CPFs gerados. Caso não seja informado, não será usada |
Gerar um único CPF:
```bash
brasili cpf generate
```
Gerar uma lista de CPFs:
```bash
brasili cpf generate -a 3
```
Gerar uma lista de CPFs e salvar o resultado em um arquivo:
```bash
brasili cpf generate -a 3 -o cpf-list.txt
```
O resultado de qualquer uma das gerações acima será um array de CPFs:
```json
["04379547060","04379547061","04379547062"]
```
#### Aplicar máscara em CPF
```bash
brasili cpf mask [...cpfs] -i <input_file> -o <output_file> --sensitive
```
| Opção | Descrição |
| ----------------- | ---------------------------------------------------------------------------------------------------------- |
| `-s, --sensitive` | Se a máscara deve esconder os caracteres do CPF. Caso não seja informado, o CPF será mascarado normalmente |
Aplicar máscara em um único CPF:
```bash
brasili cpf mask 04379547060
```
Aplicar máscara em uma lista de CPFs:
```bash
brasili cpf mask 04379547060,04379547061,04379547062
```
ou ainda:
Aplicar máscara em uma lista de CPFs em formato JSON:
```bash
brasili cpf mask '["04379547060","04379547061"]'
```
Aplicar máscara em uma lista de CPFs em formato JSON e salvar o resultado em um arquivo:
```bash
brasili cpf mask '["04379547060","04379547061"]' -o cpf-mask.json
```
Aplicar máscara em uma lista de CPFs a partir de um arquivo:
```txt
// cpf-list.txt
04379547060,04379547061
```
```bash
brasili cpf mask -i cpf-list.txt
```
O resultado de qualquer uma das aplicações de máscara acima será uma lista de objetos com o CPF e o resultado da aplicação de máscara:
```json
[
{
"cpf": "043.795.470-60",
"masked": true
},
{
"cpf": "043.795.470-61",
"masked": true
}
]
```
#### Remover máscara de CPF
```bash
brasili cpf unmask [...cpfs] -i <input_file> -o <output_file>
```
Remover máscara de um único CPF:
```bash
brasili cpf unmask 043.795.470-60
```
Remover máscara de uma lista de CPFs:
```bash
brasili cpf unmask 043.795.470-60,043.795.470-61,043.795.470-62
```
ou ainda:
Remover máscara de uma lista de CPFs em formato JSON:
```bash
brasili cpf unmask '["043.795.470-60","043.795.470-61"]'
```
Remover máscara de uma lista de CPFs em formato JSON e salvar o resultado em um arquivo:
```bash
brasili cpf unmask '["043.795.470-60","043.795.470-61"]' -o cpf-unmask.json
```
Remover máscara de uma lista de CPFs a partir de um arquivo:
```txt
// cpf-list.txt
043.795.470-60,043.795.470-61
```
```bash
brasili cpf unmask -i cpf-list.txt
```
O resultado de qualquer uma das remoções de máscara acima será uma lista de objetos com o CPF e o resultado da remoção de máscara:
```json
[
{
"cpf": "04379547060",
"unmasked": true
},
{
"cpf": "04379547061",
"unmasked": true
}
]
```
#### Verificar estado de origem de CPF
```bash
brasili cpf get-estados [...cpfs] -i <input_file> -o <output_file>
```
Pesquisar estado de origem de um único CPF:
```bash
brasili cpf get-estados 04379547060
```
Pesquisar estado de origem de uma lista de CPFs:
```bash
brasili cpf get-estados 04379547060,04379547061,04379547062
```
ou ainda:
Pesquisar estado de origem de uma lista de CPFs em formato JSON:
```bash
brasili cpf get-estados '["04379547060","04379547061"]'
```
Pesquisar estado de origem de uma lista de CPFs em formato JSON e salvar o resultado em um arquivo:
```bash
brasili cpf get-estados '["04379547060","04379547061"]' -o cpf-estados.json
```
Pesquisar estado de origem de uma lista de CPFs a partir de um arquivo:
```txt
// cpf-list.txt
04379547060,04379547061
```
```bash
brasili cpf get-estados -i cpf-list.txt
```
O resultado de qualquer uma das pesquisas de estado de origem acima será uma lista de objetos com o CPF e uma lista dos estados de origem:
```json
[
{
"cpf": "04379547060",
"estado": ["SP"]
},
{
"cpf": "04379547061",
"estado": ["SP"]
}
]
```
### CNPJ
Note que todos os comandos terão algumas opções em comum, para fins de brevidade, estas opções serão listadas aqui:
| Opção | Descrição |
| ---------------------------- | ------------------------------------------------------------ |
| `-i, --input <input_file>` | Arquivo de entrada com os CNPJs a serem processados. |
| `-o, --output <output_file>` | Arquivo de saída com o resultado do comando. |
| `-c, --copy` | Copiar o resultado da pesquisa para a área de transferência. |
#### Validar CNPJ
```bash
brasili cnpj validate [...cnpjs] -i <input_file> -o <output_file>
```
#### Gerar CNPJ
```bash
brasili cnpj generate [...cnpjs] -i <input_file> -o <output_file> -a <amount> --mask
```
| Opção | Descrição |
| ----------------------- | -------------------------------------------------------------------------- |
| `-a, --amount <amount>` | Quantidade de CNPJs a serem gerados. |
| `-m, --mask` | Aplicar máscara nos CNPJs gerados. Caso não seja informado, não será usada |
#### Aplicar máscara em CNPJ
```bash
brasili cnpj mask [...cnpjs] -i <input_file> -o <output_file> --sensitive
```
| Opção | Descrição |
| ----------------- | ------------------------------------------------------------------------------------------------------------ |
| `-s, --sensitive` | Se a máscara deve esconder os caracteres do CNPJ. Caso não seja informado, o CNPJ será mascarado normalmente |
#### Remover máscara de CNPJ
```bash
brasili cnpj unmask [...cnpjs] -i <input_file> -o <output_file>
```
| Opção | Descrição |
| ---------------------------- | ----------------------------------------------------------- |
| `-i, --input <input_file>` | Arquivo de entrada com os CNPJs a terem a máscara removida. |
| `-o, --output <output_file>` | Arquivo de saída com os CNPJs com a máscara removida. |
### PIS
Note que todos os comandos terão algumas opções em comum, para fins de brevidade, estas opções serão listadas aqui:
| Opção | Descrição |
| ---------------------------- | ------------------------------------------------------------ |
| `-i, --input <input_file>` | Arquivo de entrada com os PIS a serem processados. |
| `-o, --output <output_file>` | Arquivo de saída com o resultado do comando. |
| `-c, --copy` | Copiar o resultado da pesquisa para a área de transferência. |
#### Validar PIS
```bash
brasili pis validate [...pis] -i <input_file> -o <output_file>
```
#### Gerar PIS
```bash
brasili pis generate -a <amount> -o <output_file> --mask
```
| Opção | Descrição |
| ----------------------- | ------------------------------------------------------------------------ |
| `-a, --amount <amount>` | Quantidade de PIS a serem gerados. |
| `-m, --mask` | Aplicar máscara nos PIS gerados. Caso não seja informado, não será usada |
#### Aplicar máscara em PIS
```bash
brasili pis mask [...pis] -i <input_file> -o <output_file> --sensitive
```
| Opção | Descrição |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------- |
| `-i, --input <input_file>` | Arquivo de entrada com os PIS a terem a máscara aplicada. |
| `-o, --output <output_file>` | Arquivo de saída com os PIS com a máscara aplicada. |
| `-s, --sensitive` | Se a máscara deve esconder os caracteres do PIS. Caso não seja informado, o PIS será mascarado normalmente |
#### Remover máscara de PIS
```bash
brasili pis unmask [...pis] -i <input_file> -o <output_file>
```
| Opção | Descrição |
| ---------------------------- | --------------------------------------------------------- |
| `-i, --input <input_file>` | Arquivo de entrada com os PIS a terem a máscara removida. |
| `-o, --output <output_file>` | Arquivo de saída com os PIS com a máscara removida. |
### CNH
#### Validar CNH
```bash
brasili cnh validate [...cnhs] -i <input_file> -o <output_file>
```
| Opção | Descrição |
| ---------------------------- | ------------------------------------------------- |
| `-i, --input <input_file>` | Arquivo de entrada com os CNHs a serem validados. |
| `-o, --output <output_file>` | Arquivo de saída com os CNHs validados. |
#### Gerar CNH
```bash
brasili cnh generate -a <amount> -o <output_file>
```
| Opção | Descrição |
| ---------------------------- | ------------------------------------- |
| `-a, --amount <amount>` | Quantidade de CNHs a serem gerados. |
| `-o, --output <output_file>` | Arquivo de saída com os CNHs gerados. |
### RG
O RG tem uma particularidade que é o fato de que ele não possui um padrão nacional. Cada estado possui seu próprio padrão de RG. Por isso, para executar comandos relacionados ao rg é necessário informar o estado de origem do RG. Para isso, basta informar a sigla do estado de origem do RG logo após a lista de RGs.
Note que todos os comandos terão algumas opções em comum, para fins de brevidade, estas opções serão listadas aqui:
| Opção | Descrição |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `estado` | Obrigatório. Sigla do estado de origem do RG a ser processado. A única opção disponível é `SP`. |
| `-i, --input <input_file>` | Arquivo de entrada com os RGs a serem processados. |
| `-o, --output <output_file>` | Arquivo de saída com o resultado do comando. |
| `-c, --copy` | Copiar o resultado da pesquisa para a área de transferência. Caso não seja informado, o resultado não será copiado. |
#### Validar RG
```bash
brasili rg validate [...rgs] <estado> -i <input_file> -o <output_file>
```
#### Gerar RG
```bash
brasili rg generate <estado> -a <amount> -o <output_file> --mask
```
| Opção | Descrição |
| ----------------------- | ---------------------------------------------------- |
| `-a, --amount <amount>` | Quantidade de RGs a serem gerados. |
| `-m, --mask` | Aplicar máscara nos RGs gerados. Caso não seja usado |
#### Aplicar máscara em RG
```bash
brasili rg mask [...rgs] <estado> -i <input_file> -o <output_file> --sensitive
```
| Opção | Descrição |
| ----------------- | -------------------------------------------------------------------------------------------------------- |
| `-s, --sensitive` | Se a máscara deve esconder os caracteres do RG. Caso não seja informado, o RG será mascarado normalmente |
#### Remover máscara de RG
```bash
brasili rg unmask [...rgs] <estado> -i <input_file> -o <output_file>
```
## Sdks CLI
### Cep Aberto
Esta funcionalidade permite que você faça consultas de CEPs utilizando a API do [Cep Aberto](https://cepaberto.com/), para checar o wrapper utilizado, acesse o package [@brasil-interface/sdks]([/packages/sdks](https://github.com/pietrobondioli/brasil-interface/tree/main/packages/sdks)) deste projeto.
Note que todos os comandos terão algumas opções em comum, para fins de brevidade, estas opções serão listadas aqui:
| Opção | Descrição |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `token` | Obrigatório. Token de acesso a API do Cep Aberto. |
| `-o, --output <output_file>` | Arquivo de saída com o endereço pesquisado. |
| `-c, --copy` | Copiar o resultado da pesquisa para a área de transferência. Caso não seja informado, o resultado não será copiado. |
#### Pesquisar CEP por número de CEP
```bash
brasili cep-aberto get-by-number <cep> --token <token> -o <output_file> -c
```
| Opção | Descrição |
| ----- | ---------------------------------- |
| `cep` | Obrigatório. CEP a ser pesquisado. |
Em caso de sucesso o resultado será algo como:
```json
{
"cep": "01001-000",
"logradouro": "Praça da Sé",
"complemento": "lado ímpar",
"bairro": "Sé",
"cidade": {
"nome": "São Paulo",
"ddd": 11,
"ibge": "3550308"
},
"estado": {
"sigla": "SP"
},
"altitude": 760.0,
"latitude": "-23.5503",
"longitude": "-46.6342"
}
```
#### Pesquisar CEP por Coordenadas
```bash
brasili cep-aberto get-by-coordinates <latitude> <longitude> --token <token> -o <output_file> -c
```
| Opção | Descrição |
| ----------- | ---------------------------------------- |
| `latitude` | Obrigatório. Latitude a ser pesquisada. |
| `longitude` | Obrigatório. Longitude a ser pesquisada. |
Em caso de sucesso o JSON será o mesmo da pesquisa por CEP.
#### Pesquisar CEP por Endereço
```bash
brasili cep-aberto get-by-address <state> <city> [street] [neighborhood] --token <token> -o <output_file> -c
```
| Opção | Descrição |
| -------------- | ---------------------------------------------- |
| `state` | Obrigatório. Sigla do estado a ser pesquisado. |
| `city` | Obrigatório. Nome da cidade a ser pesquisada. |
| `street` | Opcional. Nome da rua a ser pesquisada. |
| `neighborhood` | Opcional. Nome do bairro a ser pesquisado. |
Em caso de sucesso o JSON será o mesmo da pesquisa por CEP.
#### Pesquisar CEP por Estado
```bash
brasili cep-aberto get-cities-by-state <state> --token <token> -o <output_file> -c
```
| Opção | Descrição |
| ------- | ---------------------------------------------- |
| `state` | Obrigatório. Sigla do estado a ser pesquisado. |
Em caso de sucesso o resultado será uma lista de objetos com o nome das cidades:
```json
[
{
"nome": "São Paulo",
},
{
"nome": "São Pedro",
},
{
"nome": "São Pedro do Turvo",
}
]
```
#### Atualizar uma lista de ceps
```bash
brasili cep-aberto update-ceps <cepList> --token <token> -i <input_file> -o <output_file> -c
```
| Opção | Descrição |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `cepList` | Obrigatório. Lista de CEPs a serem atualizados. |
| `-i, --input <input_file>` | Arquivo de entrada com os CEPs a serem atualizados, pode ser um arquivo JSON ou um arquivo de texto com os CEPs separados por vírgula. |
Em caso de sucesso o resultado será uma lista de strings com os ceps atualizados:
```json
[
"01001-000",
"01002-000",
"01003-000"
]
```
## Como contribuir
Leia o arquivo [CONTRIBUTING.md](https://github.com/pietrobondioli/brasil-interface/blob/main/CONTRIBUTING.md) no repositório principal.
## Contribuidores
- [Pietro Bondioli](https://github.com/pietrobondioli)
## Autor
- [Pietro Bondioli](https://github.com/pietrobondioli)
## Licença
[MIT](https://github.com/pietrobondioli/brasil-interface/blob/main/LICENSE.md)