jsEGD
    Preparing search index...

    jsEGD

    jsEGD

    Biblioteca JavaScript/TypeScript para desenvolvimento front-end em ambientes EGD.
    Fornece utilitários de validação, formatação, provedores de dados brasileiros e integração com processos EGD BPM.

    Documentação completa (TypeDoc): https://jsegd.netlify.app


    npm install jsegd
    
    import { Validate } from 'https://jsegd.netlify.app/jsegd.js'
    

    O pacote expõe três entradas independentes:

    Entrada Importação Conteúdo
    Principal jsegd Utilitários core: validação, formatação, cache, eventos, workers
    Provedores jsegd/providers Consultas a APIs brasileiras: CEP, bancos, municípios, DOCX

    Valida CPF, CNPJ, CEP, e-mail, celular e chaves Pix.

    import { Validate, TypePix } from 'jsegd'

    await Validate.isValidCPF('123.456.789-09') // boolean
    await Validate.isValidCNPJ('11.222.333/0001-81') // boolean (numérico e alfanumérico)
    await Validate.isValidCEP('01310-100') // boolean
    await Validate.isValidEmail('usuario@dominio.com.br') // boolean
    await Validate.isValidMobile('(11) 91234-5678') // boolean
    await Validate.isValidPix(TypePix.EMAIL, 'pix@banco.com') // lança Error se inválida

    TypePix — enum para tipo de chave Pix: DOCUMENT, EMAIL, MOBILE, EVP.


    import { Util } from 'jsegd'
    import { Currency } from 'jsegd' // enum compartilhado com WrittenOut

    await Util.parseNumber('R$ 1.250,99') // 1250.99
    Util.convertToMonetaryValue(1250.99) // "R$ 1.250,99"
    Util.convertToMonetaryValue(1250.99, Currency.USD) // "$1,250.99"
    await Util.removeAccents('São Paulo') // "Sao Paulo"
    await Util.abbreviate('Avenida Paulista') // "AV Paulista"

    import { WrittenOut, DeadlineUnit, Currency } from 'jsegd'

    WrittenOut.formatNumber(1234.56)
    // "um mil e duzentos e trinta e quatro reais e cinquenta e seis centavos"

    WrittenOut.formatCurrency(1.01, Currency.GBP)
    // "uma libra e um penny"

    WrittenOut.formatDeadline(2, DeadlineUnit.Hour)
    // "duas horas"

    WrittenOut.formatDate(new Date('2025-01-25'))
    // "sábado, vinte e cinco de janeiro de dois mil e vinte e cinco"

    DeadlineUnit — enum: Second, Minute, Hour, Day, Week, Month, Bimonth, Quarter, Semester, Year.
    Currency — enum: BRL, USD, EUR, JPY, GBP, CNY.


    Implementa o padrão publish/subscribe com singleton e tipagem estrita.

    import { EventBus } from 'jsegd'

    type MyEvents = {
    'dados:carregados': [data: string[]]
    erro: [message: string]
    }

    const bus = EventBus.getInstance<MyEvents>()

    const unsubscribe = bus.on('dados:carregados', (data) => {
    console.log(data)
    })

    bus.emit('dados:carregados', ['item1', 'item2'])

    unsubscribe() // cancela inscrição
    Método Descrição
    on(event, callback) Inscreve handler; retorna função para desinscrever
    once(event, callback) Inscreve handler de disparo único
    off(event, callback) Remove callback específico
    emit(event, ...args) Emite evento com argumentos
    clear(event?) Remove todos os callbacks de um evento ou todos

    import { LocalCache } from 'jsegd'

    const cache = LocalCache.getInstance()

    cache.initialize({
    storeName: 'meu-cache',
    cacheExpirationMs: 5 * 60 * 1000, // 5 minutos
    })

    await cache.set('chave', { id: 1, nome: 'Dado' })
    const valor = await cache.get<{ id: number; nome: string }>('chave') // ou null se expirado
    await cache.remove('chave')
    await cache.purgeExpired() // retorna quantidade de entradas removidas
    await cache.clear()

    import { AddressController } from 'jsegd/providers'

    const controller = new AddressController()
    const address = await controller.findByCep('01310-100')

    console.log(address.logradouro) // "Avenida Paulista"
    console.log(address.localidade) // "São Paulo"
    console.log(address.uf) // "SP"

    import { BankController } from 'jsegd/providers'

    const controller = new BankController()

    const todos = await controller.list()
    const resultados = await controller.filterByCodeOrFullName('341')
    const itau = await controller.findByFullName('Itaú')

    console.log(itau[0].fullName) // "Itaú Unibanco S.A."
    console.log(itau[0].code) // 341
    console.log(itau[0].ispb) // "60701190"

    import { MunicipalityController } from 'jsegd/providers'

    const controller = new MunicipalityController()
    const municipios = await controller.findByName('São Paulo')

    const sp = municipios[0]
    console.log(sp.cityName) // "São Paulo"
    console.log(sp.stateAbbreviation) // "SP"
    console.log(sp.cityId) // código IBGE

    import { DocxRenderer } from 'jsegd/providers'

    // `template` é um ArrayBuffer com o arquivo .docx
    const blob = DocxRenderer.render(template, {
    nome: 'João Silva',
    cpf: '123.456.789-09',
    data: '25/01/2025',
    })

    // Fazer download
    const url = URL.createObjectURL(blob)

    A documentação completa da API, gerada automaticamente com TypeDoc a partir dos comentários JSDoc do projeto, está disponível em:

    https://jsegd.netlify.app

    Inclui todos os módulos, classes, interfaces, tipos e enumerações com descrições detalhadas.


    Veja o arquivo LICENSE para mais detalhes.