@br-validators/core 1.9.0 → 1.10.0-data.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -7
- package/dist/aeroportos.js +1 -1
- package/dist/anp-combustiveis.js +13523 -13795
- package/dist/anp-combustiveis.js.map +1 -1
- package/dist/bancos.js +3 -3
- package/dist/bancos.js.map +1 -1
- package/dist/batch.d.ts +24 -3
- package/dist/batch.js +16 -15
- package/dist/brcode.js +6 -6
- package/dist/cbo.js +1 -1
- package/dist/cep.js +6 -3
- package/dist/{chunk-DQPSNERX.js → chunk-2VHARM5W.js} +12 -11
- package/dist/chunk-2VHARM5W.js.map +1 -0
- package/dist/{chunk-GXCW6FM7.js → chunk-3KMDCHIE.js} +5 -5
- package/dist/{chunk-GXCW6FM7.js.map → chunk-3KMDCHIE.js.map} +1 -1
- package/dist/{chunk-F6LVFAJT.js → chunk-4NS47CJG.js} +3 -3
- package/dist/{chunk-F6LVFAJT.js.map → chunk-4NS47CJG.js.map} +1 -1
- package/dist/{chunk-GREFQOOJ.js → chunk-5BNMQJBF.js} +5 -5
- package/dist/{chunk-GREFQOOJ.js.map → chunk-5BNMQJBF.js.map} +1 -1
- package/dist/{chunk-MOMQLTSD.js → chunk-5Q4N2EZI.js} +11 -11
- package/dist/{chunk-MOMQLTSD.js.map → chunk-5Q4N2EZI.js.map} +1 -1
- package/dist/chunk-5V2TNYC7.js +3 -0
- package/dist/{chunk-KLPONHBL.js.map → chunk-5V2TNYC7.js.map} +1 -1
- package/dist/{chunk-5M4S6ZMM.js → chunk-62VSQ63D.js} +5 -5
- package/dist/{chunk-5M4S6ZMM.js.map → chunk-62VSQ63D.js.map} +1 -1
- package/dist/{chunk-YYHS5WQN.js → chunk-6BWOYNQD.js} +2 -2
- package/dist/{chunk-YYHS5WQN.js.map → chunk-6BWOYNQD.js.map} +1 -1
- package/dist/chunk-6LCZGDCZ.js +27862 -0
- package/dist/chunk-6LCZGDCZ.js.map +1 -0
- package/dist/{chunk-MSYTS5K7.js → chunk-6WBUKUHD.js} +3 -3
- package/dist/{chunk-MSYTS5K7.js.map → chunk-6WBUKUHD.js.map} +1 -1
- package/dist/{chunk-DS6MOO5K.js → chunk-7XVCTDJE.js} +6 -65
- package/dist/chunk-7XVCTDJE.js.map +1 -0
- package/dist/{chunk-4HQ4J2J5.js → chunk-A255RZZ7.js} +3 -3
- package/dist/{chunk-4HQ4J2J5.js.map → chunk-A255RZZ7.js.map} +1 -1
- package/dist/{chunk-KSDAKRG5.js → chunk-A2QZGUA2.js} +16 -11
- package/dist/chunk-A2QZGUA2.js.map +1 -0
- package/dist/chunk-AOBSYTR2.js +31 -0
- package/dist/chunk-AOBSYTR2.js.map +1 -0
- package/dist/{chunk-3FDHWX2H.js → chunk-BTRWDUZF.js} +3 -3
- package/dist/{chunk-3FDHWX2H.js.map → chunk-BTRWDUZF.js.map} +1 -1
- package/dist/{chunk-4ORSIPZU.js → chunk-BVZC4RES.js} +5 -5
- package/dist/{chunk-4ORSIPZU.js.map → chunk-BVZC4RES.js.map} +1 -1
- package/dist/{chunk-55IZCKNL.js → chunk-C4E2AE2A.js} +3 -3
- package/dist/{chunk-55IZCKNL.js.map → chunk-C4E2AE2A.js.map} +1 -1
- package/dist/{chunk-S6ZNVXSM.js → chunk-CAN4WCSR.js} +9 -9
- package/dist/{chunk-S6ZNVXSM.js.map → chunk-CAN4WCSR.js.map} +1 -1
- package/dist/{chunk-62P6SKG3.js → chunk-DABLVVDL.js} +23 -21
- package/dist/chunk-DABLVVDL.js.map +1 -0
- package/dist/{chunk-W5LOXC7J.js → chunk-DQQNXXGO.js} +12 -3
- package/dist/chunk-DQQNXXGO.js.map +1 -0
- package/dist/{chunk-56ZN3TBH.js → chunk-DXKHCIMV.js} +3 -3
- package/dist/{chunk-56ZN3TBH.js.map → chunk-DXKHCIMV.js.map} +1 -1
- package/dist/{chunk-CIOSYWV4.js → chunk-E65XWYIL.js} +3 -3
- package/dist/{chunk-CIOSYWV4.js.map → chunk-E65XWYIL.js.map} +1 -1
- package/dist/{chunk-5IYHOWQU.js → chunk-EZB3ROCN.js} +99 -13
- package/dist/chunk-EZB3ROCN.js.map +1 -0
- package/dist/chunk-FA5ZM5UA.js +63 -0
- package/dist/chunk-FA5ZM5UA.js.map +1 -0
- package/dist/{chunk-SRVFQ34Q.js → chunk-GIYVXSIG.js} +5 -5
- package/dist/{chunk-SRVFQ34Q.js.map → chunk-GIYVXSIG.js.map} +1 -1
- package/dist/{chunk-7HEMXLDS.js → chunk-GQRHLW5W.js} +3 -4
- package/dist/chunk-GQRHLW5W.js.map +1 -0
- package/dist/{chunk-ZL5RDZJM.js → chunk-HEPUV3XR.js} +3 -4
- package/dist/chunk-HEPUV3XR.js.map +1 -0
- package/dist/{chunk-WOIO7FLJ.js → chunk-HS54PUBT.js} +5 -5
- package/dist/{chunk-WOIO7FLJ.js.map → chunk-HS54PUBT.js.map} +1 -1
- package/dist/chunk-JUQMINSZ.js +52 -0
- package/dist/chunk-JUQMINSZ.js.map +1 -0
- package/dist/{chunk-DL4TSGE5.js → chunk-JZOS2MO7.js} +3 -3
- package/dist/{chunk-DL4TSGE5.js.map → chunk-JZOS2MO7.js.map} +1 -1
- package/dist/{chunk-2BNGYQFQ.js → chunk-KCRWHMDY.js} +3 -3
- package/dist/{chunk-2BNGYQFQ.js.map → chunk-KCRWHMDY.js.map} +1 -1
- package/dist/{chunk-W524B2G5.js → chunk-KKCC4DBM.js} +5 -5
- package/dist/{chunk-W524B2G5.js.map → chunk-KKCC4DBM.js.map} +1 -1
- package/dist/{chunk-UNBIJPJU.js → chunk-L3WG36Y4.js} +3 -3
- package/dist/{chunk-UNBIJPJU.js.map → chunk-L3WG36Y4.js.map} +1 -1
- package/dist/{chunk-BLSDFC3C.js → chunk-LGOVAHF6.js} +22 -4
- package/dist/chunk-LGOVAHF6.js.map +1 -0
- package/dist/{chunk-NQIKXTMI.js → chunk-LKDZEPWZ.js} +3 -3
- package/dist/{chunk-NQIKXTMI.js.map → chunk-LKDZEPWZ.js.map} +1 -1
- package/dist/chunk-LLJSXMO2.js +32 -0
- package/dist/chunk-LLJSXMO2.js.map +1 -0
- package/dist/{chunk-2RZXK6C3.js → chunk-MGFDTECS.js} +13 -32
- package/dist/chunk-MGFDTECS.js.map +1 -0
- package/dist/{chunk-JNAZI3HU.js → chunk-OOAVPAQO.js} +10 -9
- package/dist/chunk-OOAVPAQO.js.map +1 -0
- package/dist/{chunk-N2MDJI4B.js → chunk-PNLNKVA2.js} +3 -3
- package/dist/{chunk-N2MDJI4B.js.map → chunk-PNLNKVA2.js.map} +1 -1
- package/dist/{chunk-KVJL4MTV.js → chunk-PRSHGHAS.js} +10 -9
- package/dist/chunk-PRSHGHAS.js.map +1 -0
- package/dist/{chunk-RKL64IOG.js → chunk-Q6QX2OM6.js} +6 -6
- package/dist/{chunk-RKL64IOG.js.map → chunk-Q6QX2OM6.js.map} +1 -1
- package/dist/{chunk-FIZWWQ64.js → chunk-QEMI73EJ.js} +5 -5
- package/dist/{chunk-FIZWWQ64.js.map → chunk-QEMI73EJ.js.map} +1 -1
- package/dist/{chunk-MOND6K5Z.js → chunk-R2FVOWII.js} +5 -5
- package/dist/{chunk-MOND6K5Z.js.map → chunk-R2FVOWII.js.map} +1 -1
- package/dist/{chunk-6F7G6Z5B.js → chunk-TDOPVHOO.js} +5 -5
- package/dist/{chunk-6F7G6Z5B.js.map → chunk-TDOPVHOO.js.map} +1 -1
- package/dist/{chunk-BDYNBRT7.js → chunk-UG2YICWH.js} +3 -3
- package/dist/{chunk-BDYNBRT7.js.map → chunk-UG2YICWH.js.map} +1 -1
- package/dist/{chunk-S4WEXFHC.js → chunk-V5VCS6I5.js} +3 -3
- package/dist/{chunk-S4WEXFHC.js.map → chunk-V5VCS6I5.js.map} +1 -1
- package/dist/{chunk-UBIQFNIP.js → chunk-W6QYVABD.js} +5 -5
- package/dist/{chunk-UBIQFNIP.js.map → chunk-W6QYVABD.js.map} +1 -1
- package/dist/{chunk-X5TJG22D.js → chunk-WH4BS3CY.js} +6 -6
- package/dist/{chunk-X5TJG22D.js.map → chunk-WH4BS3CY.js.map} +1 -1
- package/dist/{chunk-TMHKYUPU.js → chunk-X2JMHCGK.js} +5 -5
- package/dist/{chunk-TMHKYUPU.js.map → chunk-X2JMHCGK.js.map} +1 -1
- package/dist/{chunk-HZ4UGWFE.js → chunk-Y5QZ3DEP.js} +3 -3
- package/dist/{chunk-HZ4UGWFE.js.map → chunk-Y5QZ3DEP.js.map} +1 -1
- package/dist/{chunk-N6CALNFU.js → chunk-YC4GZZJP.js} +3 -3
- package/dist/{chunk-N6CALNFU.js.map → chunk-YC4GZZJP.js.map} +1 -1
- package/dist/{chunk-IBXICIOY.js → chunk-YD7XRMF3.js} +5 -5
- package/dist/{chunk-IBXICIOY.js.map → chunk-YD7XRMF3.js.map} +1 -1
- package/dist/{chunk-56A6XUJP.js → chunk-YLHIA4IY.js} +5 -5
- package/dist/{chunk-56A6XUJP.js.map → chunk-YLHIA4IY.js.map} +1 -1
- package/dist/chunk-YQN6RNJN.js +30 -0
- package/dist/chunk-YQN6RNJN.js.map +1 -0
- package/dist/{chunk-SCBXZLZ5.js → chunk-ZKBSS65Z.js} +20 -15
- package/dist/{chunk-SCBXZLZ5.js.map → chunk-ZKBSS65Z.js.map} +1 -1
- package/dist/{chunk-GFRG6ZPY.js → chunk-ZO6RRZEP.js} +5 -5
- package/dist/{chunk-GFRG6ZPY.js.map → chunk-ZO6RRZEP.js.map} +1 -1
- package/dist/{chunk-LBR6N2CQ.js → chunk-ZWRPWGRT.js} +5 -5
- package/dist/{chunk-LBR6N2CQ.js.map → chunk-ZWRPWGRT.js.map} +1 -1
- package/dist/cnaes.js +1 -1
- package/dist/cnh.js +6 -3
- package/dist/cnpj-motivos.js +1 -1
- package/dist/cnpj.js +3 -3
- package/dist/compare.d.ts +2 -2
- package/dist/compare.js +18 -17
- package/dist/cpf.js +2 -3
- package/dist/csosn.d.ts +54 -0
- package/dist/csosn.js +96 -0
- package/dist/csosn.js.map +1 -0
- package/dist/data-catalog.js +43 -41
- package/dist/data-catalog.js.map +1 -1
- package/dist/detect.js +15 -14
- package/dist/diff.d.ts +2 -2
- package/dist/diff.js +18 -17
- package/dist/esocial.d.ts +29 -1
- package/dist/esocial.js +1720 -2
- package/dist/esocial.js.map +1 -1
- package/dist/generate.js +25 -24
- package/dist/ibge.js +2 -27860
- package/dist/ibge.js.map +1 -1
- package/dist/incoterms.js +1 -1
- package/dist/{index-CttohJuk.d.ts → index-CmpOAd8U.d.ts} +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +41 -40
- package/dist/index.js.map +1 -1
- package/dist/iss-municipal.d.ts +71 -3
- package/dist/iss-municipal.js +45366 -235
- package/dist/iss-municipal.js.map +1 -1
- package/dist/mask.js +24 -23
- package/dist/moedas.js +1 -1
- package/dist/natureza-juridica.js +1 -1
- package/dist/nbs.js +1 -1
- package/dist/ncm.js +1 -1
- package/dist/paises-bacen.js +1 -1
- package/dist/{pix-B8_PfK2D.d.ts → pix-DhAb6Iho.d.ts} +3 -1
- package/dist/pix.d.ts +1 -1
- package/dist/pix.js +8 -7
- package/dist/placa.js +6 -3
- package/dist/pncp-reference.js +1 -1
- package/dist/portos.js +1 -1
- package/dist/ptax.d.ts +12 -4
- package/dist/ptax.js +8367 -252
- package/dist/ptax.js.map +1 -1
- package/dist/renavam.js +6 -3
- package/dist/sanitize.d.ts +1 -1
- package/dist/sanitize.js +16 -12
- package/dist/selic.js +13 -13
- package/dist/selic.js.map +1 -1
- package/dist/telefone.js +3 -3
- package/dist/titulo-eleitor.js +6 -3
- package/dist/transparencia-snapshots.js +2 -2
- package/dist/transparencia-snapshots.js.map +1 -1
- package/dist/tse-municipios.js +1 -1
- package/dist/{types-CTLx5zMu.d.ts → types-DLuN-sEJ.d.ts} +1 -1
- package/package.json +5 -1
- package/dist/chunk-2RZXK6C3.js.map +0 -1
- package/dist/chunk-5IYHOWQU.js.map +0 -1
- package/dist/chunk-62P6SKG3.js.map +0 -1
- package/dist/chunk-7HEMXLDS.js.map +0 -1
- package/dist/chunk-BLSDFC3C.js.map +0 -1
- package/dist/chunk-DQPSNERX.js.map +0 -1
- package/dist/chunk-DS6MOO5K.js.map +0 -1
- package/dist/chunk-JNAZI3HU.js.map +0 -1
- package/dist/chunk-KLPONHBL.js +0 -3
- package/dist/chunk-KSDAKRG5.js.map +0 -1
- package/dist/chunk-KVJL4MTV.js.map +0 -1
- package/dist/chunk-RUQDVHR7.js +0 -14
- package/dist/chunk-RUQDVHR7.js.map +0 -1
- package/dist/chunk-VBFKN3NR.js +0 -14
- package/dist/chunk-VBFKN3NR.js.map +0 -1
- package/dist/chunk-W5LOXC7J.js.map +0 -1
- package/dist/chunk-YUAMWVIU.js +0 -30
- package/dist/chunk-YUAMWVIU.js.map +0 -1
- package/dist/chunk-ZL5RDZJM.js.map +0 -1
package/README.md
CHANGED
|
@@ -31,7 +31,7 @@ Every Brazilian SaaS eventually reinvents CPF validation — usually wrong.
|
|
|
31
31
|
- ✅ **Zero runtime dependencies** — pure TypeScript logic, no HTTP calls
|
|
32
32
|
- ✅ **Never throws** — every function returns `{ ok: true, value } | { ok: false, message, code }`
|
|
33
33
|
- ✅ **Tree-shakeable** — subpath imports per document type
|
|
34
|
-
- ✅ **Reference data** — IBGE (municipalities + NF-e `cMunFG`), Bacen banks, DDD lookup, national holidays, CNAE, CFOP, CST, LC 116, NCM, IBPT tax burden, Simples Nacional, CBO, natureza jurídica, NBS, CEST, eSocial categorias, CNPJ motivos, moedas, PTAX cotações, países Bacen, NF-e cUF, IRPF / INSS tables, SELIC meta, ISS municipal (
|
|
34
|
+
- ✅ **Reference data** — IBGE (municipalities + NF-e `cMunFG`), Bacen banks, DDD lookup, national holidays, CNAE, CFOP, CST, LC 116, NCM, IBPT tax burden, Simples Nacional, CBO, natureza jurídica, NBS, CEST, eSocial categorias, CNPJ motivos, moedas, PTAX cotações, países Bacen, NF-e cUF, IRPF / INSS tables, SELIC meta, ISS municipal (top 500 PIB), Incoterms, portos, aeroportos, **ANP fuel prices (LPC)** — embedded offline with daily freshness ([DATA-FRESHNESS.md](../../docs/DATA-FRESHNESS.md); ANP weekly)
|
|
35
35
|
- ✅ **ESM only**, Node ≥ 18, works in browser, Bun, Deno
|
|
36
36
|
|
|
37
37
|
---
|
|
@@ -299,7 +299,7 @@ Embedded JSON from official `.gov.br` sources — **no runtime HTTP**. Each modu
|
|
|
299
299
|
| CFOP fiscal operations | `@br-validators/core/cfop` | `cfop lookup` · `search` | `/data/fiscal` | `getCfopPorCodigo`, `searchCfop` | [CONFAZ CFOP SINIEF](https://www.confaz.fazenda.gov.br/legislacao/ajustes/sinief/cfop_cvsn_70_vigente) |
|
|
300
300
|
| CST (ICMS, IPI, PIS, COFINS) | `@br-validators/core/cst` | — | `/data/fiscal` | `getCstIcmsPorCodigo`, `getCstIpiPorCodigo`, `searchCstIcms` | [RFB SPED CST tables](http://www.sped.fazenda.gov.br/spedtabelas/AppConsulta/publico/aspx/ConsultaTabelasExternas.aspx?CodSistema=SpedFiscal) |
|
|
301
301
|
| LC 116 ISS services | `@br-validators/core/lc116` | — | `/data/fiscal` | `getLc116PorCodigo`, `searchLc116` | [LC 116/2003 Planalto](https://www.planalto.gov.br/ccivil_03/leis/lcp/lcp116.htm) |
|
|
302
|
-
| eSocial
|
|
302
|
+
| eSocial (categorias + rubricas) | `@br-validators/core/esocial` | — | `/data/payroll` | `getEsocialCategoriaPorCodigo`, `getEsocialRubricaPorCodigo`, `searchEsocialRubricas` | [eSocial S-1.3 Tabelas](https://www.gov.br/esocial/pt-br/documentacao-tecnica/leiautes-esocial-versao-s-1-3-nt-06-2026/tabelas.html) |
|
|
303
303
|
| NCM Mercosur nomenclature | `@br-validators/core/ncm` | `ncm lookup` · `search` | `/data/fiscal` | `getNcmPorCodigo`, `searchNcm` | [Siscomex NCM JSON](https://portalunico.siscomex.gov.br/classif/api/publico/nomenclatura/download/json) |
|
|
304
304
|
| IBPT approximate NCM tax burden | `@br-validators/core/ibpt` | — | `/data/fiscal` | `getIbptCargaPorNcmUf`, `computeIbptCargaTotal` | [IBPT Lei 12.741/2012](https://www.planalto.gov.br/ccivil_03/_ato2011-2014/2012/lei/l12741.htm) |
|
|
305
305
|
| Simples Nacional annex tables | `@br-validators/core/simples-nacional` | — | `/data/fiscal` | `getSimplesAnexo`, `getSimplesFaixa`, `computeSimplesAliquotaEfetiva` | [LC 123/2006 Planalto](https://www.planalto.gov.br/ccivil_03/_ato2007-2010/2006/lei/l123.htm) |
|
|
@@ -308,18 +308,22 @@ Embedded JSON from official `.gov.br` sources — **no runtime HTTP**. Each modu
|
|
|
308
308
|
| NBS (NFSe Nacional) | `@br-validators/core/nbs` | `nbs lookup` | `/data/fiscal` | `getNbsPorCodigo`, `searchNbs` | [NFSe Anexo B NBS2 xlsx](https://www.gov.br/nfse/pt-br/biblioteca/documentacao-tecnica/documentacao-atual/anexo_b-nbs2-lista_servico_nacional-snnfse.xlsx) |
|
|
309
309
|
| CEST (substituição tributária) | `@br-validators/core/cest` | `cest lookup` | `/data/fiscal` | `getCestPorCodigo`, `getCestPorNcm`, `searchCest` | [CONFAZ ICMS 142/2018](https://www.confaz.fazenda.gov.br/legislacao/convenios/2018/CV142_18) |
|
|
310
310
|
| ISO 4217 + Bacen PTAX moedas | `@br-validators/core/moedas` | `moedas lookup` | `/data/trade` | `getMoedaPorCodigo`, `searchMoedas` | [Bacen PTAX Moedas API](https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/Moedas) |
|
|
311
|
-
| Bacen PTAX Fechamento | `@br-validators/core/ptax` |
|
|
311
|
+
| Bacen PTAX Fechamento | `@br-validators/core/ptax` | `ptax lookup` · `ptax historico` | `/data/trade` | `getPtaxCotacao`, `getPtaxHistorico`, `getPtaxUltimoDiaUtil` (+ `dataReferencia`, `isStale`) | [Bacen Olinda PTAX API](https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/swagger-ui3) |
|
|
312
312
|
| NF-e Bacen country codes | `@br-validators/core/paises-bacen` | `paises-bacen lookup` | `/data/trade` | `getPaisPorCodigoBacen`, `getPaisesBacen` | [NF-e country table](http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=FOXZNFX/p50=) |
|
|
313
313
|
| NF-e cUF (IBGE state codes) | `@br-validators/core/nfe-cuf` | `nfe-cuf lookup` | `/data/fiscal` | `getCufPorCodigo`, `lookupCufPorCodigo` | [NF-e cUF table](http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=FOXZNFX/p50=) |
|
|
314
314
|
| IRPF progressive brackets | `@br-validators/core/irpf` | `irpf tabela` · `irpf calc` | `/data/payroll` | `getIrpfTabelaProgressiva`, `calcularIrpfMensal` | [RFB IRPF tables](https://www.gov.br/receitafederal/pt-br/assuntos/meu-imposto-de-renda/tabelas) |
|
|
315
315
|
| INSS contribution brackets | `@br-validators/core/inss` | `inss tabela` · `inss calc` | `/data/payroll` | `getInssTabelaContribuicao`, `calcularInssMensal` | [INSS contribution rates](https://www.gov.br/inss/pt-br/direitos-e-deveres/inscricao-e-contribuicao/tabelas-de-contribuicao) |
|
|
316
316
|
| Bacen SELIC meta | `@br-validators/core/selic` | `selic` | `/data/finance` | `getSelicMeta`, `getSelicMetaPorData` | [Bacen SGS série 432](https://www3.bcb.gov.br/sgspub/localizarseries/localizarSeries.do?method=prepararTelaLocalizarSeries) |
|
|
317
|
-
| ISS municipal rates (
|
|
317
|
+
| ISS municipal rates (top 500 PIB + MUNIC/IBGE fallback) | `@br-validators/core/iss-municipal` | `iss-municipal lookup` · `list` · `search [--uf]` | `/data/fiscal` | `lookupIssMunicipalPorIbge` (500 → `munic-ibge` → LC 116), `getIssMunicipalPorIbge`, `getAllIssMunicipal` — check `fonte` + `warning` | [IBGE SIDRA PIB 5938](https://apisidra.ibge.gov.br/values/t/5938/n6/all/v/37/p/2022) · [MUNIC 2024](https://www.ibge.gov.br/estatisticas/economicas/contabilidade/9078-pesquisa-de-informacoes-municipais.html) |
|
|
318
318
|
| ICC Incoterms 2020 | `@br-validators/core/incoterms` | `incoterms lookup` | `/data/trade` | `getIncotermPorCodigo`, `getIncoterms` | [ICC Incoterms rules](https://iccwbo.org/resources-for-business/incoterms-rules/) |
|
|
319
319
|
| CBO 2002 occupations | `@br-validators/core/cbo` | `cbo lookup` · `search` | `/data/fiscal` | `getCboPorCodigo`, `searchCbo` | [MTE CBO downloads](https://www.gov.br/trabalho-e-emprego/pt-br/assuntos/cbo/servicos/downloads) |
|
|
320
320
|
| CEP prefix lookup | `@br-validators/core/cep` | `cep faixa` | — | `getCepFaixaInfo`, `getCepFaixas` | [IBGE CNEFE 2022](https://www.ibge.gov.br/estatisticas/sociais/populacao/38734-cadastro-nacional-de-enderecos-para-fins-estatisticos.html) |
|
|
321
321
|
| Data transparency catalog | `@br-validators/core/data-catalog` | — | `/data/catalog` | `getDataCatalog`, `getDatasetMetadata` | Aggregates all `metadata.json` entries |
|
|
322
322
|
|
|
323
|
+
> **PTAX embed:** last **90 business days** (`janelaDiasUteis: 90`) — not live Bacen. Every cotacao includes `dataReferencia` and `isStale`. Use `getPtaxHistorico(moeda, { desde, ate })` for contract-period FX variation. See [DATA-FRESHNESS.md](https://github.com/open-data-brazil/br-validators/blob/main/docs/DATA-FRESHNESS.md).
|
|
324
|
+
>
|
|
325
|
+
> **`getAll*()`:** each lookup row above has a matching `getAll*()` export — see [Listing reference data](#listing-reference-data-getall) below.
|
|
326
|
+
|
|
323
327
|
```typescript
|
|
324
328
|
import { getMunicipioPorCodigo } from '@br-validators/core/ibge';
|
|
325
329
|
import { getBancoPorCodigo } from '@br-validators/core/bancos';
|
|
@@ -335,6 +339,7 @@ import { getNaturezaJuridicaPorCodigo } from '@br-validators/core/natureza-jurid
|
|
|
335
339
|
import { getNbsPorCodigo } from '@br-validators/core/nbs';
|
|
336
340
|
import { getCestPorCodigo } from '@br-validators/core/cest';
|
|
337
341
|
import { getMoedaPorCodigo } from '@br-validators/core/moedas';
|
|
342
|
+
import { getPtaxUltimoDiaUtil, getPtaxHistorico } from '@br-validators/core/ptax';
|
|
338
343
|
import { getPaisPorCodigoBacen } from '@br-validators/core/paises-bacen';
|
|
339
344
|
import { getIncotermPorCodigo } from '@br-validators/core/incoterms';
|
|
340
345
|
import { getAeroportoPorIata } from '@br-validators/core/aeroportos';
|
|
@@ -344,7 +349,7 @@ import { getSelicMeta } from '@br-validators/core/selic';
|
|
|
344
349
|
import { getIrpfTabelaProgressiva } from '@br-validators/core/irpf';
|
|
345
350
|
import { getInssTabelaContribuicao } from '@br-validators/core/inss';
|
|
346
351
|
import { getCufPorCodigo } from '@br-validators/core/nfe-cuf';
|
|
347
|
-
import {
|
|
352
|
+
import { lookupIssMunicipalPorIbge } from '@br-validators/core/iss-municipal';
|
|
348
353
|
import { getDataCatalog } from '@br-validators/core/data-catalog';
|
|
349
354
|
|
|
350
355
|
getMunicipioPorCodigo(3550308)?.nome; // São Paulo
|
|
@@ -359,6 +364,15 @@ getNaturezaJuridicaPorCodigo('2062'); // Sociedade Empresária Limitada
|
|
|
359
364
|
getNbsPorCodigo('1.1502.50.00'); // TI systems integration (NFSe)
|
|
360
365
|
getCestPorCodigo('0302100'); // returnable beer bottle (ST)
|
|
361
366
|
getMoedaPorCodigo('BRL')?.nome; // Real Brasileiro
|
|
367
|
+
|
|
368
|
+
const ptax = getPtaxUltimoDiaUtil('USD');
|
|
369
|
+
ptax.dataReferencia; // always expose to callers
|
|
370
|
+
ptax.isStale; // true when embed > 1 business day old
|
|
371
|
+
ptax.warning; // present when stale
|
|
372
|
+
|
|
373
|
+
getPtaxHistorico('USD', { desde: '2026-06-01', ate: '2026-06-26' });
|
|
374
|
+
// each row: dataReferencia, isStale, warning
|
|
375
|
+
|
|
362
376
|
getPaisPorCodigoBacen('1058')?.nome; // Brasil (NF-e cPais)
|
|
363
377
|
getIncotermPorCodigo('FOB')?.nome; // Free On Board
|
|
364
378
|
getAeroportoPorIata('GRU')?.nome; // Guarulhos — SP
|
|
@@ -368,17 +382,34 @@ getSelicMeta()?.valor; // latest Bacen SELIC meta (% a.a.)
|
|
|
368
382
|
getIrpfTabelaProgressiva(2026); // progressive monthly brackets
|
|
369
383
|
getInssTabelaContribuicao(2026); // INSS contribution table
|
|
370
384
|
getCufPorCodigo('35')?.uf; // SP (NF-e cUF)
|
|
371
|
-
getIssMunicipalPorIbge(
|
|
385
|
+
const iss = getIssMunicipalPorIbge(3509502); // Campinas — estimativa row
|
|
386
|
+
if (iss?.fonte === 'estimativa') {
|
|
387
|
+
console.warn(iss.warning); // not for NFSe emission
|
|
388
|
+
}
|
|
372
389
|
getDataCatalog().length; // registered datasets
|
|
373
390
|
```
|
|
374
391
|
|
|
392
|
+
### Listing reference data (`getAll*`)
|
|
393
|
+
|
|
394
|
+
```typescript
|
|
395
|
+
import { getAllNcm } from '@br-validators/core/ncm';
|
|
396
|
+
import { getAllCfop } from '@br-validators/core/cfop';
|
|
397
|
+
import { getAllCstIcms } from '@br-validators/core/cst';
|
|
398
|
+
|
|
399
|
+
getAllNcm().length; // full NCM embed
|
|
400
|
+
getAllCfop().length; // full CFOP embed
|
|
401
|
+
getAllCstIcms(); // ICMS CST rows
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
Also: `getAllBancos`, `getAllEsocialCategorias`, `getAllIssMunicipal`, `getAllAeroportos`. Deprecated names (`getNcms`, `getCfops`) — [MIGRATION.md](https://github.com/open-data-brazil/br-validators/blob/main/MIGRATION.md).
|
|
405
|
+
|
|
375
406
|
Freshness table (auto-updated daily; ANP weekly): [docs/DATA-FRESHNESS.md](https://github.com/open-data-brazil/br-validators/blob/main/docs/DATA-FRESHNESS.md) · Per-type official URLs: [docs/OFFICIAL-SOURCES.md](https://github.com/open-data-brazil/br-validators/blob/main/docs/OFFICIAL-SOURCES.md)
|
|
376
407
|
|
|
377
408
|
---
|
|
378
409
|
|
|
379
410
|
## Current release
|
|
380
411
|
|
|
381
|
-
**v1.
|
|
412
|
+
**v1.10.0** — Phase 35 (EXP-35): CSOSN, eSocial rubricas, PTAX 90d + `getPtaxHistorico`, ISS MUNIC/IBGE cascade, batch CSV, PIX sanitize, bundle size docs, ISS `fonte`. [CHANGELOG](https://github.com/open-data-brazil/br-validators/blob/main/CHANGELOG.md#1100---2026-06-27)
|
|
382
413
|
|
|
383
414
|
---
|
|
384
415
|
|
|
@@ -392,6 +423,25 @@ import { validateCpf } from '@br-validators/core/cpf';
|
|
|
392
423
|
import { parseNfeChave } from '@br-validators/core/nfe-chave';
|
|
393
424
|
```
|
|
394
425
|
|
|
426
|
+
## Bundle size (gzipped)
|
|
427
|
+
|
|
428
|
+
Measured `@br-validators/core@1.10.0` with `pnpm measure:bundle-sizes` (esbuild ESM bundle per subpath). **Reference-data subpaths include embedded JSON**; some validators (e.g. `cep`, `sanitize`) also bundle shared core dependencies when imported alone.
|
|
429
|
+
|
|
430
|
+
| Subpath | Raw (esbuild) | Gzip | Notes |
|
|
431
|
+
|---------|---------------|------|-------|
|
|
432
|
+
| `@br-validators/core/cpf` | 4.0 KB | 1.5 KB | validator only |
|
|
433
|
+
| `@br-validators/core/cnpj` | 6.8 KB | 2.0 KB | validator only |
|
|
434
|
+
| `@br-validators/core/cep` | 2340.8 KB | 161.8 KB | validator only |
|
|
435
|
+
| `@br-validators/core/ncm` | 914.6 KB | 142.2 KB | includes embed |
|
|
436
|
+
| `@br-validators/core/cfop` | 100.3 KB | 9.4 KB | includes embed |
|
|
437
|
+
| `@br-validators/core/cst` | 19.1 KB | 3.4 KB | includes embed |
|
|
438
|
+
| `@br-validators/core/pix` | 17.6 KB | 3.9 KB | validator only |
|
|
439
|
+
| `@br-validators/core/ptax` | 214.2 KB | 22.4 KB | includes embed |
|
|
440
|
+
| `@br-validators/core/ibge` | 392.6 KB | 60.5 KB | includes embed |
|
|
441
|
+
| `@br-validators/core/sanitize` | 2995.5 KB | 219.4 KB | platform utilities |
|
|
442
|
+
|
|
443
|
+
Full table (62 subpaths): [data/bundle-sizes/subpath-sizes.md](../../data/bundle-sizes/subpath-sizes.md).
|
|
444
|
+
|
|
395
445
|
---
|
|
396
446
|
|
|
397
447
|
## Related packages
|
package/dist/aeroportos.js
CHANGED