jsegd
Version:
Utilitário de ferramentas para desenvolvimento
258 lines (250 loc) • 10.2 kB
TypeScript
/**
* Representa um endereço postal brasileiro retornado pela API ViaCEP.
* @hideconstructor
*/
declare class Address {
/** Código de Endereçamento Postal. */
private _cep;
/** Nome do logradouro (rua, avenida, etc.). */
private _logradouro;
/** Complemento do endereço (apto, bloco, etc.). */
private _complemento;
/** Unidade do logradouro, quando aplicável. */
private _unidade;
/** Nome do bairro. */
private _bairro;
/** Nome do município. */
private _localidade;
/** Sigla da unidade federativa (estado). */
private _uf;
/** Nome completo do estado. */
private _estado;
/** Nome da macrorregião geográfica do Brasil. */
private _regiao;
/** Código IBGE do município. */
private _ibge;
/** Código GIA — Gerência de Informação Apurada (somente municípios de SP). */
private _gia;
/** Código DDD da área de telefonia. */
private _ddd;
/** Código SIAFI do município. */
private _siafi;
protected constructor(cep: string, logradouro: string, complemento: string, unidade: string, bairro: string, localidade: string, uf: string, estado: string, regiao: string, ibge: string, gia: string, ddd: string, siafi: string);
/** Código de Endereçamento Postal (CEP). */
get cep(): string;
/** Nome do logradouro (rua, avenida, travessa, etc.). */
get logradouro(): string;
/** Complemento do endereço (apartamento, bloco, etc.). */
get complemento(): string;
/** Unidade do logradouro, quando disponível. */
get unidade(): string;
/** Nome do bairro. */
get bairro(): string;
/** Nome do município. */
get localidade(): string;
/** Sigla da unidade federativa (estado). */
get uf(): string;
/** Nome completo do estado. */
get estado(): string;
/** Nome da macrorregião geográfica do Brasil (Norte, Nordeste, etc.). */
get regiao(): string;
/** Código IBGE do município. */
get ibge(): string;
/** Código GIA — Gerência de Informação Apurada (somente municípios de SP). */
get gia(): string;
/** Código DDD da área de telefonia. */
get ddd(): string;
/** Código SIAFI do município. */
get siafi(): string;
/**
* Cria uma instância de Address a partir de um objeto bruto retornado pela API ViaCEP.
* @param raw Objeto JSON retornado pela API
* @returns Instância de Address com os campos mapeados
*/
static from(raw: Record<string, string>): Address;
}
/**
* Controlador de endereços postais brasileiros via ViaCEP.
*/
declare abstract class AddressController {
private static readonly service;
/**
* Consulta um endereço pelo CEP informado.
* @param cep CEP contendo 8 dígitos numéricos (com ou sem hífen)
* @returns Endereço correspondente ao CEP
* @throws {Error} Quando o CEP não é encontrado ou a API retorna erro
*/
static findByCep(cep: string): Promise<Address>;
}
/**
* Representa um banco brasileiro registrado no Sistema de Pagamentos Brasileiro (SPB).
* @hideconstructor
*/
declare class Bank {
/** Código ISPB — Identificador de Sistema de Pagamentos Brasileiro. */
private _ispb;
/** Nome reduzido do banco. */
private _name;
/** Código COMPE — Sistema de Compensação de Cheques e Outros Papéis. */
private _code;
/** Nome completo do banco. */
private _fullName;
protected constructor(ispb: string, name: string, code: number, fullName: string);
/** Código ISPB — Identificador de Sistema de Pagamentos Brasileiro. */
get ispb(): string;
/** Nome reduzido do banco. */
get name(): string;
/** Código COMPE do banco. */
get code(): number;
/** Nome completo do banco. */
get fullName(): string;
/**
* Cria uma instância de Bank a partir de um objeto bruto retornado pela API.
* @param raw Objeto com os campos ispb, name, code e fullName
* @returns Instância de Bank com os campos mapeados
*/
static from(raw: {
ispb: string;
name: string;
code: number;
fullName: string;
}): Bank;
/**
* Retorna uma representação JSON do banco como string formatada.
* @returns String com os campos ispb, name, code e fullName
*/
toString(): string;
}
/**
* Controlador de bancos brasileiros via BrasilAPI.
*/
declare abstract class BankController {
private static readonly service;
/**
* Retorna a lista de todos os bancos disponíveis.
* @returns Lista de bancos com ISPB, código COMPE e nome
* @example
* ## Uso
* ```javascript
* const banks = await BankController.list()
* for (const bank of banks) {
* console.log(bank.toString());
* }
* ```
*/
static list(): Promise<Bank[]>;
/**
* Busca bancos cujo nome completo contenha o texto informado.
* @param query Texto parcial do nome do banco (insensível a maiúsculas)
* @returns Lista de bancos correspondentes
*/
static findByFullName(query: string): Promise<Bank[]>;
/**
* Filtra bancos pelo código COMPE numérico ou por nome completo (texto parcial).
* @param query Código numérico ou texto parcial do nome do banco
* @returns Lista de bancos correspondentes
*/
static filterByCodeOrFullName(query: string): Promise<Bank[]>;
}
/**
* Opções de configuração para renderização de template DOCX.
*/
interface DocxRendererOptions {
/**
* Função chamada para tags sem valor correspondente nos dados.
* Retorna a string a inserir no documento. Por padrão retorna string vazia,
* evitando erros em formulários com campos opcionais.
*/
nullGetter?: (part: {
value: string;
}, scopeManager?: unknown) => string;
/**
* Parser personalizado para pré-processar valores antes da substituição.
* Útil para transformar tipos como `Date` em strings formatadas ou booleanos em `"Sim"/"Não"`.
* @example
* // Formata datas automaticamente para pt-BR
* parser: (tag) => ({
* get: (scope) => {
* const val = scope[tag]
* if (val instanceof Date) return val.toLocaleDateString('pt-BR')
* return val ?? ''
* }
* })
*/
parser?: (tag: string) => {
get: (scope: Record<string, unknown>) => unknown;
};
}
/**
* Provider para renderização de documentos Word (.docx) a partir de templates.
* Utiliza PizZip e Docxtemplater internamente. Não deve ser instanciada.
* @example
* const blob = DocxRenderer.render(templateBuffer, { nome: 'João', data: new Date() })
*/
declare abstract class DocxRenderer {
/**
* Renderiza um template DOCX substituindo as tags pelos valores fornecidos.
* Tags sem valor correspondente retornam string vazia por padrão (via `nullGetter`).
* Erros de renderização do Docxtemplater são propagados com detalhes de cada tag inválida.
* @param template Template DOCX como `ArrayBuffer`. Para converter de `Blob`: `await blob.arrayBuffer()`.
* @param data Objeto com os dados para substituição das tags no template.
* @param options Opções adicionais de renderização (`nullGetter`, `parser`).
* @returns `Blob` do documento Word renderizado no formato `.docx`.
* @throws {Error} Se a renderização falhar ou o template for inválido.
*/
static render(template: ArrayBuffer, data: Record<string, unknown>, options?: DocxRendererOptions): Blob;
}
/**
* Representa um município brasileiro com suas subdivisões geográficas,
* conforme retornado pela API de localidades do IBGE.
* @hideconstructor
*/
declare class Municipality {
/** Identificador do município (código IBGE). */
readonly cityId: string;
/** Nome do município. */
readonly cityName: string;
/** Identificador da microregião geográfica. */
readonly microregionId: string;
/** Nome da microregião geográfica. */
readonly microregionName: string;
/** Identificador da mesoregião geográfica. */
readonly mesoregionId: string;
/** Nome da mesoregião geográfica. */
readonly mesoregionName: string;
/** Identificador da região geográfica imediata. */
readonly immediateRegionId: string;
/** Nome da região geográfica imediata. */
readonly immediateRegionName: string;
/** Identificador da região geográfica intermediária. */
readonly intermediateRegionId: string;
/** Nome da região geográfica intermediária. */
readonly intermediateRegionName: string;
/** Identificador numérico da Unidade Federativa (estado). */
readonly stateId: string;
/** Sigla da Unidade Federativa (estado). */
readonly stateAbbreviation: string;
/** Nome completo da Unidade Federativa (estado). */
readonly stateName: string;
/** Identificador da macrorregião geográfica do Brasil. */
readonly regionId: string;
/** Sigla da macrorregião geográfica do Brasil. */
readonly regionAbbreviation: string;
/** Nome da macrorregião geográfica do Brasil. */
readonly regionName: string;
constructor(cityId: string, cityName: string, microregionId: string, microregionName: string, mesoregionId: string, mesoregionName: string, immediateRegionId: string, immediateRegionName: string, intermediateRegionId: string, intermediateRegionName: string, stateId: string, stateAbbreviation: string, stateName: string, regionId: string, regionAbbreviation: string, regionName: string);
}
/**
* Controlador de municípios brasileiros via API de localidades do IBGE.
*/
declare abstract class MunicipalityController {
private static readonly service;
/**
* Busca municípios cujo nome contenha o texto informado (insensível a acentos e maiúsculas).
* @param name Nome ou parte do nome do município
* @returns Lista de municípios correspondentes
*/
static findByName(name: string): Promise<Municipality[]>;
}
export { Address, AddressController, Bank, BankController, DocxRenderer, Municipality, MunicipalityController };
export type { DocxRendererOptions };