UNPKG

jsegd

Version:

Utilitário de ferramentas para desenvolvimento

258 lines (250 loc) 10.2 kB
/** * 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 };