@br-validators/core 1.0.0 → 1.3.0
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 +42 -2
- package/dist/bancos.d.ts +41 -0
- package/dist/bancos.js +3328 -0
- package/dist/bancos.js.map +1 -0
- package/dist/batch.js +16 -14
- package/dist/brcode.js +5 -5
- package/dist/cbo.d.ts +41 -0
- package/dist/cbo.js +10832 -0
- package/dist/cbo.js.map +1 -0
- package/dist/cep.d.ts +38 -1
- package/dist/cep.js +4 -3
- package/dist/cfop.d.ts +41 -0
- package/dist/cfop.js +2812 -0
- package/dist/cfop.js.map +1 -0
- package/dist/chunk-5CBVZIQC.js +30 -0
- package/dist/chunk-5CBVZIQC.js.map +1 -0
- package/dist/{chunk-LAEUXOF6.js → chunk-5EJAENH5.js} +3 -3
- package/dist/{chunk-LAEUXOF6.js.map → chunk-5EJAENH5.js.map} +1 -1
- package/dist/chunk-DQUMIETC.js +30 -0
- package/dist/chunk-DQUMIETC.js.map +1 -0
- package/dist/{chunk-HUIMOB5E.js → chunk-DYX5XSJ6.js} +3 -3
- package/dist/{chunk-HUIMOB5E.js.map → chunk-DYX5XSJ6.js.map} +1 -1
- package/dist/{chunk-TJCE4TVX.js → chunk-EN7PVDYB.js} +4 -4
- package/dist/{chunk-TJCE4TVX.js.map → chunk-EN7PVDYB.js.map} +1 -1
- package/dist/{chunk-VWVQWN2G.js → chunk-EQV33L7H.js} +3 -3
- package/dist/{chunk-VWVQWN2G.js.map → chunk-EQV33L7H.js.map} +1 -1
- package/dist/{chunk-FKFRB3RJ.js → chunk-GWAYWBHN.js} +4 -4
- package/dist/{chunk-FKFRB3RJ.js.map → chunk-GWAYWBHN.js.map} +1 -1
- package/dist/{chunk-BFMRXXFE.js → chunk-ITHT54NC.js} +11 -11
- package/dist/{chunk-BFMRXXFE.js.map → chunk-ITHT54NC.js.map} +1 -1
- package/dist/{chunk-IYOPXJLY.js → chunk-JSNXKBZA.js} +3 -3
- package/dist/{chunk-IYOPXJLY.js.map → chunk-JSNXKBZA.js.map} +1 -1
- package/dist/{chunk-P2KNN6ZR.js → chunk-KGCLQ7QX.js} +3 -3
- package/dist/{chunk-P2KNN6ZR.js.map → chunk-KGCLQ7QX.js.map} +1 -1
- package/dist/{chunk-H3MLGGFI.js → chunk-KLONQL76.js} +5 -5
- package/dist/{chunk-H3MLGGFI.js.map → chunk-KLONQL76.js.map} +1 -1
- package/dist/{chunk-63G7QO73.js → chunk-L7PF4KD6.js} +3 -3
- package/dist/{chunk-63G7QO73.js.map → chunk-L7PF4KD6.js.map} +1 -1
- package/dist/{chunk-PD7ZTWMM.js → chunk-MAM4U3UR.js} +3 -3
- package/dist/{chunk-PD7ZTWMM.js.map → chunk-MAM4U3UR.js.map} +1 -1
- package/dist/{chunk-V7UJ55KW.js → chunk-MZDCVTN6.js} +3 -3
- package/dist/{chunk-V7UJ55KW.js.map → chunk-MZDCVTN6.js.map} +1 -1
- package/dist/{chunk-G6OBZRZM.js → chunk-NHFSEWO2.js} +12 -12
- package/dist/{chunk-G6OBZRZM.js.map → chunk-NHFSEWO2.js.map} +1 -1
- package/dist/{chunk-I66ZRSEN.js → chunk-NT3TNF3R.js} +3 -3
- package/dist/{chunk-I66ZRSEN.js.map → chunk-NT3TNF3R.js.map} +1 -1
- package/dist/{chunk-EVULAGR5.js → chunk-O3T7PUBI.js} +3 -3
- package/dist/{chunk-EVULAGR5.js.map → chunk-O3T7PUBI.js.map} +1 -1
- package/dist/chunk-OOUEURR7.js +24091 -0
- package/dist/chunk-OOUEURR7.js.map +1 -0
- package/dist/chunk-P6TOL5VY.js +147973 -0
- package/dist/chunk-P6TOL5VY.js.map +1 -0
- package/dist/{chunk-WC6YYFWP.js → chunk-QB7SZS2C.js} +10 -10
- package/dist/{chunk-WC6YYFWP.js.map → chunk-QB7SZS2C.js.map} +1 -1
- package/dist/{chunk-N2WVO3GF.js → chunk-QK27VDVB.js} +11 -11
- package/dist/{chunk-N2WVO3GF.js.map → chunk-QK27VDVB.js.map} +1 -1
- package/dist/chunk-RRVGW333.js +31 -0
- package/dist/chunk-RRVGW333.js.map +1 -0
- package/dist/{chunk-N6N5ATLY.js → chunk-S4WWYHQM.js} +3 -3
- package/dist/{chunk-N6N5ATLY.js.map → chunk-S4WWYHQM.js.map} +1 -1
- package/dist/chunk-SC6YCHT7.js +30 -0
- package/dist/chunk-SC6YCHT7.js.map +1 -0
- package/dist/{chunk-MESOO5GZ.js → chunk-SDEJD2J7.js} +3 -3
- package/dist/{chunk-MESOO5GZ.js.map → chunk-SDEJD2J7.js.map} +1 -1
- package/dist/{chunk-I7DM47IR.js → chunk-SKDMG3FK.js} +20 -20
- package/dist/{chunk-I7DM47IR.js.map → chunk-SKDMG3FK.js.map} +1 -1
- package/dist/chunk-UGW266DF.js +30 -0
- package/dist/chunk-UGW266DF.js.map +1 -0
- package/dist/{chunk-YNVMVDFN.js → chunk-VKG7UEN5.js} +3 -3
- package/dist/{chunk-YNVMVDFN.js.map → chunk-VKG7UEN5.js.map} +1 -1
- package/dist/chunk-WH6W3NUA.js +30 -0
- package/dist/chunk-WH6W3NUA.js.map +1 -0
- package/dist/chunk-WSUAPD5M.js +32 -0
- package/dist/chunk-WSUAPD5M.js.map +1 -0
- package/dist/{chunk-CSVGWTCG.js → chunk-XHDRWM46.js} +3 -3
- package/dist/{chunk-CSVGWTCG.js.map → chunk-XHDRWM46.js.map} +1 -1
- package/dist/chunk-XQ6MMGV2.js +30 -0
- package/dist/chunk-XQ6MMGV2.js.map +1 -0
- package/dist/chunk-YOL43ZNQ.js +35 -0
- package/dist/chunk-YOL43ZNQ.js.map +1 -0
- package/dist/{chunk-SAZA3V2U.js → chunk-ZTDLGGYE.js} +10 -10
- package/dist/{chunk-SAZA3V2U.js.map → chunk-ZTDLGGYE.js.map} +1 -1
- package/dist/cnaes.d.ts +41 -0
- package/dist/cnaes.js +5384 -0
- package/dist/cnaes.js.map +1 -0
- package/dist/cnh.js +4 -4
- package/dist/compare.js +18 -16
- package/dist/cpf.js +4 -4
- package/dist/data-catalog.d.ts +14 -0
- package/dist/data-catalog.js +37 -0
- package/dist/data-catalog.js.map +1 -0
- package/dist/detect.js +15 -13
- package/dist/diff.js +18 -16
- package/dist/feriados.d.ts +73 -0
- package/dist/feriados.js +243 -0
- package/dist/feriados.js.map +1 -0
- package/dist/generate.js +25 -23
- package/dist/ibge.d.ts +65 -0
- package/dist/ibge.js +28174 -0
- package/dist/ibge.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.js +43 -41
- package/dist/index.js.map +1 -1
- package/dist/mask.js +24 -22
- package/dist/ncm.d.ts +41 -0
- package/dist/ncm.js +42116 -0
- package/dist/ncm.js.map +1 -0
- package/dist/pix.js +5 -5
- package/dist/placa.js +1 -1
- package/dist/renavam.js +4 -4
- package/dist/sanitize.js +13 -11
- package/dist/telefone.d.ts +32 -1
- package/dist/telefone.js +3 -2
- package/dist/titulo-eleitor.js +4 -4
- package/dist/types-CBIZxgfG.d.ts +28 -0
- package/package.json +41 -1
- package/dist/chunk-DAR6VOMT.js +0 -192
- package/dist/chunk-DAR6VOMT.js.map +0 -1
- package/dist/chunk-TE6NSONR.js +0 -43
- package/dist/chunk-TE6NSONR.js.map +0 -1
package/README.md
CHANGED
|
@@ -29,6 +29,7 @@ Every Brazilian SaaS eventually reinvents CPF validation — usually wrong.
|
|
|
29
29
|
- ✅ **Zero runtime dependencies** — pure TypeScript logic, no HTTP calls
|
|
30
30
|
- ✅ **Never throws** — every function returns `{ ok: true, value } | { ok: false, message, code }`
|
|
31
31
|
- ✅ **Tree-shakeable** — subpath imports per document type
|
|
32
|
+
- ✅ **Reference data** — IBGE, Bacen banks, DDD lookup, national holidays, CNAE, CFOP, NCM, CBO — embedded offline with weekly freshness ([DATA-FRESHNESS.md](../../docs/DATA-FRESHNESS.md))
|
|
32
33
|
- ✅ **ESM only**, Node ≥ 18, works in browser, Bun, Deno
|
|
33
34
|
|
|
34
35
|
---
|
|
@@ -233,7 +234,7 @@ br-validators generate inscricao-estadual-produtor-rural --masked --seed 42
|
|
|
233
234
|
|---|---|---|---|
|
|
234
235
|
| CPF | `@br-validators/core/cpf` | `br-validators cpf …` | `/cpf` |
|
|
235
236
|
| CNPJ (numeric + alphanumeric) | `@br-validators/core/cnpj` | `br-validators cnpj …` | `/cnpj` |
|
|
236
|
-
| CEP | `@br-validators/core/cep` | `br-validators cep …` | `/cep` |
|
|
237
|
+
| CEP | `@br-validators/core/cep` | `br-validators cep …` | `/cep` (+ `getCepFaixaInfo` prefix lookup) |
|
|
237
238
|
| Telefone | `@br-validators/core/telefone` | `br-validators telefone …` | `/telefone` |
|
|
238
239
|
| CNH | `@br-validators/core/cnh` | `br-validators cnh …` | `/cnh` |
|
|
239
240
|
| RENAVAM | `@br-validators/core/renavam` | `br-validators renavam …` | `/renavam` |
|
|
@@ -257,7 +258,46 @@ br-validators generate inscricao-estadual-produtor-rural --masked --seed 42
|
|
|
257
258
|
| **generate()** | `@br-validators/core/generate` | `br-validators generate …` | `/generate` |
|
|
258
259
|
| **buildStaticPixBrCode()** | `@br-validators/core/brcode` | — | `/pix` (QR panel) |
|
|
259
260
|
|
|
260
|
-
|
|
261
|
+
### Reference data (offline lookup)
|
|
262
|
+
|
|
263
|
+
Embedded JSON from official `.gov.br` sources — **no runtime HTTP**. Each module exports `*_DATA_VERSION` with capture date, row counts, and source URLs. Aggregated via `@br-validators/core/data-catalog`.
|
|
264
|
+
|
|
265
|
+
| Dataset | Subpath | Key APIs | Official source |
|
|
266
|
+
|---------|---------|----------|-----------------|
|
|
267
|
+
| IBGE states + municipalities | `@br-validators/core/ibge` | `getEstados`, `getMunicipios`, `getMunicipioPorCodigo` | [IBGE localidades API](https://servicodados.ibge.gov.br/api/docs/localidades) |
|
|
268
|
+
| Bacen STR banks (COMPE / ISPB) | `@br-validators/core/bancos` | `getBancos`, `getBancoPorCodigo`, `getBancoPorIspb` | [Bacen Participantes STR](https://www.bcb.gov.br/content/estabilidadefinanceira/str1/ParticipantesSTR.csv) |
|
|
269
|
+
| DDD geographic lookup | `@br-validators/core/telefone` | `getDddInfo` (extends telefone validator) | [Anatel DDD panel](https://informacoes.anatel.gov.br/paineis/areas-tarifarias/codigos-nacionais) |
|
|
270
|
+
| National holidays | `@br-validators/core/feriados` | `isFeriadoNacional`, `getFeriadosNacionais`, `getProximoDiaUtil` | [Lei 662/1949](https://www.planalto.gov.br/ccivil_03/leis/l0662.htm) + annual Portaria MGI |
|
|
271
|
+
| CNAE 2.3 subclasses | `@br-validators/core/cnaes` | `getCnaePorCodigo`, `searchCnaes` | [IBGE CNAE API v2](https://servicodados.ibge.gov.br/api/docs/cnae) |
|
|
272
|
+
| CFOP fiscal operations | `@br-validators/core/cfop` | `getCfopPorCodigo`, `searchCfop` | [CONFAZ CFOP SINIEF](https://www.confaz.fazenda.gov.br/legislacao/ajustes/sinief/cfop_cvsn_70_vigente) |
|
|
273
|
+
| NCM Mercosur nomenclature | `@br-validators/core/ncm` | `getNcmPorCodigo`, `searchNcm` | [Siscomex NCM JSON](https://portalunico.siscomex.gov.br/classif/api/publico/nomenclatura/download/json) |
|
|
274
|
+
| CBO 2002 occupations | `@br-validators/core/cbo` | `getCboPorCodigo`, `searchCbo` | [MTE CBO downloads](https://www.gov.br/trabalho-e-emprego/pt-br/assuntos/cbo/servicos/downloads) |
|
|
275
|
+
| CEP prefix lookup | `@br-validators/core/cep` | `getCepFaixaInfo`, `getCepFaixas` | [IBGE CNEFE 2022](https://www.ibge.gov.br/estatisticas/sociais/populacao/38734-cadastro-nacional-de-enderecos-para-fins-estatisticos.html) |
|
|
276
|
+
| Data transparency catalog | `@br-validators/core/data-catalog` | `getDataCatalog`, `getDatasetMetadata` | Aggregates all `metadata.json` entries |
|
|
277
|
+
|
|
278
|
+
```typescript
|
|
279
|
+
import { getMunicipioPorCodigo } from '@br-validators/core/ibge';
|
|
280
|
+
import { getBancoPorCodigo } from '@br-validators/core/bancos';
|
|
281
|
+
import { getDddInfo } from '@br-validators/core/telefone';
|
|
282
|
+
import { isFeriadoNacional } from '@br-validators/core/feriados';
|
|
283
|
+
import { getCnaePorCodigo } from '@br-validators/core/cnaes';
|
|
284
|
+
import { getCfopPorCodigo } from '@br-validators/core/cfop';
|
|
285
|
+
import { getNcmPorCodigo } from '@br-validators/core/ncm';
|
|
286
|
+
import { getCboPorCodigo } from '@br-validators/core/cbo';
|
|
287
|
+
import { getDataCatalog } from '@br-validators/core/data-catalog';
|
|
288
|
+
|
|
289
|
+
getMunicipioPorCodigo(3550308)?.nome; // São Paulo
|
|
290
|
+
getBancoPorCodigo('001')?.nome; // Banco do Brasil
|
|
291
|
+
getDddInfo('11')?.uf; // SP
|
|
292
|
+
isFeriadoNacional('2026-01-01'); // true — Confraternização Universal
|
|
293
|
+
getCnaePorCodigo('6201501'); // custom software development
|
|
294
|
+
getCfopPorCodigo('1.102'); // accepts CONFAZ dotted format
|
|
295
|
+
getNcmPorCodigo('01012100'); // purebred horses (8-digit leaf)
|
|
296
|
+
getCboPorCodigo('212405'); // systems development analyst
|
|
297
|
+
getDataCatalog().length; // 8 registered datasets
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
Freshness table (auto-updated weekly): [docs/DATA-FRESHNESS.md](https://github.com/AlexandreZanata/br-validators/blob/main/docs/DATA-FRESHNESS.md) · Per-type official URLs: [docs/OFFICIAL-SOURCES.md](https://github.com/AlexandreZanata/br-validators/blob/main/docs/OFFICIAL-SOURCES.md)
|
|
261
301
|
|
|
262
302
|
---
|
|
263
303
|
|
package/dist/bancos.d.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { b as DatasetChanges, c as DatasetVerification } from './types-CBIZxgfG.js';
|
|
2
|
+
|
|
3
|
+
interface Banco {
|
|
4
|
+
codigo: string;
|
|
5
|
+
ispb: string;
|
|
6
|
+
nome: string;
|
|
7
|
+
nomeReduzido: string;
|
|
8
|
+
participaCompe: boolean;
|
|
9
|
+
}
|
|
10
|
+
interface BancosDataVersion {
|
|
11
|
+
id: 'bancos';
|
|
12
|
+
nome: string;
|
|
13
|
+
fonte: string;
|
|
14
|
+
endpoints: string[];
|
|
15
|
+
capturadoEm: string;
|
|
16
|
+
atualizadoEm: string;
|
|
17
|
+
contagens: {
|
|
18
|
+
bancos: number;
|
|
19
|
+
};
|
|
20
|
+
alteracoes: DatasetChanges;
|
|
21
|
+
verificacao: DatasetVerification;
|
|
22
|
+
documentacao: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Bacen STR participant lookup — offline embedded data from official STR CSV.
|
|
27
|
+
* @see https://www.bcb.gov.br/content/estabilidadefinanceira/str1/ParticipantesSTR.csv
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
declare function getBancos(): readonly Banco[];
|
|
31
|
+
declare function getBancoPorCodigo(codigo: string): Banco | undefined;
|
|
32
|
+
declare function getBancoPorIspb(ispb: string): Banco | undefined;
|
|
33
|
+
|
|
34
|
+
declare const BANCOS_STR_URL = "https://www.bcb.gov.br/content/estabilidadefinanceira/str1/ParticipantesSTR.csv";
|
|
35
|
+
declare const BANCOS_GOLDEN_COMPE_BB = "001";
|
|
36
|
+
declare const BANCOS_GOLDEN_COMPE_ITAU = "341";
|
|
37
|
+
declare const BANCOS_GOLDEN_COMPE_NUBANK = "260";
|
|
38
|
+
|
|
39
|
+
declare const BANCOS_DATA_VERSION: BancosDataVersion;
|
|
40
|
+
|
|
41
|
+
export { BANCOS_DATA_VERSION, BANCOS_GOLDEN_COMPE_BB, BANCOS_GOLDEN_COMPE_ITAU, BANCOS_GOLDEN_COMPE_NUBANK, BANCOS_STR_URL, type Banco, type BancosDataVersion, getBancoPorCodigo, getBancoPorIspb, getBancos };
|