Skip to content

Releases: vilsonneto/tributos-br

v1.3.0 — PIS e COFINS

15 Mar 14:31

Choose a tag to compare

PIS e COFINS

Novas calculadoras calcPis() e calcCofins() com o mesmo padrao das demais: calculo por fora, aliquota via parametro, audit trail de 2 steps.

O que mudou

  • calcPis({ base, aliquota }) — regime cumulativo (0,65%) e nao cumulativo (1,65%)
  • calcCofins({ base, aliquota }) — regime cumulativo (3%) e nao cumulativo (7,6%)
  • 27 testes com ground truth de 6 NF-e reais (cStat 100)
  • 362 testes totais, 95% cobertura

Outros

  • Secao "Alternativas" no README
  • Secao "Escopo e limitacoes" no README e site
  • Aviso legal no README
  • Refactor: normalize() extraida para modulo compartilhado
  • Card PIS/COFINS e secao Escopo no site

Instalacao

npm install tributos-br

npm: https://www.npmjs.com/package/tributos-br

v1.2.0

14 Mar 18:59

Choose a tag to compare

Minor Changes

  • 5dfa982: FCP como campo separado em calcIcms e calcDifal

    • calcIcms aceita fcp?: DecimalInput e retorna fcp?: Decimal no resultado, com audit step "FCP". Corresponde a vFCP no XML da NF-e.
    • calcDifal com fecop agora retorna fcp separado (= vFCPUFDest) e difal sem FCP (= vICMSUFDest). O FECOP continua no denominador da base dupla/reduzida.
    • NF-e #9 adicionada ao ground truth (primeira com vFCPUFDest > 0).
    • NF-e #6 atualizada para usar a API nativa ao inves do workaround.

    Breaking (correcao fiscal): calcDifal com fecop retornava difal incluindo FCP. Agora difal exclui FCP, que vem no campo fcp. O comportamento anterior era fiscalmente incorreto (SEFAZ valida vICMSUFDest e vFCPUFDest como campos separados).

v1.0.0

08 Mar 03:37
ea1fc5c

Choose a tag to compare

Major Changes

  • 4b239a2: Motor de calculo tributario brasileiro v1.0.0

    Calculadoras implementadas:

    • calcIcms() — ICMS proprio (por dentro / por fora)
    • calcIpi() — IPI sobre produto
    • calcMvaAjustada() — MVA ajustada interestadual (com FECOP)
    • calcSt() — ICMS-ST unificada (5 cenarios via parametros)
    • calcDifal() — DIFAL base unica + base dupla (LC 190/2022)
    • calcCbs() — CBS (reforma tributaria, LC 214/2025)
    • calcIbs() — IBS (reforma tributaria, LC 214/2025)

    Novidades:

    • Audit trail em todas as calculadoras (AuditStep[] com step, formula e value)
    • Logo SVG com suporte light/dark mode
    • README com exemplos de todos os cenarios
    • 265 testes, coverage 95%+

v0.1.0 — Motor de Precisao Decimal

06 Mar 18:40

Choose a tag to compare

Primeira release: Motor de Precisao Decimal

Classe Decimal imutavel com aritmetica sobre strings (zero IEEE 754), 7 modos de arredondamento (HALF_UP padrao SEFAZ), e API completa.

Destaques

  • Zero dependencias externas
  • Precisao arbitraria: 0.1 + 0.2 = 0.3 (sem drift IEEE 754)
  • Conformidade SEFAZ: elimina rejeicoes 629/630
  • 7 modos de arredondamento: HALF_UP, HALF_EVEN, HALF_DOWN, UP, DOWN, CEILING, FLOOR
  • API imutavel e encadeavel: Decimal.from('100').mul('1.18').round(2).toFixed(2)
  • Atalhos tributarios: .toMoney() (2 casas) e .toRate() (4 casas)
  • Dual output: ESM + CJS, compativel com Node >= 18

Instalacao

npm install tributos-br

Uso

import { Decimal, RoundingMode } from 'tributos-br'

// Correcao IEEE 754
Decimal.from('0.1').add('0.2').toString() // '0.3'

// Calculo tributario
const vProd = Decimal.from('1.0640').mul('39680').toMoney()
vProd.toFixed(2) // '42219.52'

// ICMS por dentro
const vBC = Decimal.from('1000').div(Decimal.one().sub('0.18')).toMoney()
vBC.toFixed(2) // '1219.51'