Releases: vilsonneto/tributos-br
Releases · vilsonneto/tributos-br
v1.3.0 — PIS e COFINS
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-brv1.2.0
Minor Changes
-
5dfa982: FCP como campo separado em calcIcms e calcDifal
calcIcmsaceitafcp?: DecimalInpute retornafcp?: Decimalno resultado, com audit step "FCP". Corresponde a vFCP no XML da NF-e.calcDifalcomfecopagora retornafcpseparado (= vFCPUFDest) edifalsem 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):
calcDifalcomfecopretornavadifalincluindo FCP. Agoradifalexclui FCP, que vem no campofcp. O comportamento anterior era fiscalmente incorreto (SEFAZ valida vICMSUFDest e vFCPUFDest como campos separados).
v1.0.0
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
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-brUso
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'