@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.
Files changed (120) hide show
  1. package/README.md +42 -2
  2. package/dist/bancos.d.ts +41 -0
  3. package/dist/bancos.js +3328 -0
  4. package/dist/bancos.js.map +1 -0
  5. package/dist/batch.js +16 -14
  6. package/dist/brcode.js +5 -5
  7. package/dist/cbo.d.ts +41 -0
  8. package/dist/cbo.js +10832 -0
  9. package/dist/cbo.js.map +1 -0
  10. package/dist/cep.d.ts +38 -1
  11. package/dist/cep.js +4 -3
  12. package/dist/cfop.d.ts +41 -0
  13. package/dist/cfop.js +2812 -0
  14. package/dist/cfop.js.map +1 -0
  15. package/dist/chunk-5CBVZIQC.js +30 -0
  16. package/dist/chunk-5CBVZIQC.js.map +1 -0
  17. package/dist/{chunk-LAEUXOF6.js → chunk-5EJAENH5.js} +3 -3
  18. package/dist/{chunk-LAEUXOF6.js.map → chunk-5EJAENH5.js.map} +1 -1
  19. package/dist/chunk-DQUMIETC.js +30 -0
  20. package/dist/chunk-DQUMIETC.js.map +1 -0
  21. package/dist/{chunk-HUIMOB5E.js → chunk-DYX5XSJ6.js} +3 -3
  22. package/dist/{chunk-HUIMOB5E.js.map → chunk-DYX5XSJ6.js.map} +1 -1
  23. package/dist/{chunk-TJCE4TVX.js → chunk-EN7PVDYB.js} +4 -4
  24. package/dist/{chunk-TJCE4TVX.js.map → chunk-EN7PVDYB.js.map} +1 -1
  25. package/dist/{chunk-VWVQWN2G.js → chunk-EQV33L7H.js} +3 -3
  26. package/dist/{chunk-VWVQWN2G.js.map → chunk-EQV33L7H.js.map} +1 -1
  27. package/dist/{chunk-FKFRB3RJ.js → chunk-GWAYWBHN.js} +4 -4
  28. package/dist/{chunk-FKFRB3RJ.js.map → chunk-GWAYWBHN.js.map} +1 -1
  29. package/dist/{chunk-BFMRXXFE.js → chunk-ITHT54NC.js} +11 -11
  30. package/dist/{chunk-BFMRXXFE.js.map → chunk-ITHT54NC.js.map} +1 -1
  31. package/dist/{chunk-IYOPXJLY.js → chunk-JSNXKBZA.js} +3 -3
  32. package/dist/{chunk-IYOPXJLY.js.map → chunk-JSNXKBZA.js.map} +1 -1
  33. package/dist/{chunk-P2KNN6ZR.js → chunk-KGCLQ7QX.js} +3 -3
  34. package/dist/{chunk-P2KNN6ZR.js.map → chunk-KGCLQ7QX.js.map} +1 -1
  35. package/dist/{chunk-H3MLGGFI.js → chunk-KLONQL76.js} +5 -5
  36. package/dist/{chunk-H3MLGGFI.js.map → chunk-KLONQL76.js.map} +1 -1
  37. package/dist/{chunk-63G7QO73.js → chunk-L7PF4KD6.js} +3 -3
  38. package/dist/{chunk-63G7QO73.js.map → chunk-L7PF4KD6.js.map} +1 -1
  39. package/dist/{chunk-PD7ZTWMM.js → chunk-MAM4U3UR.js} +3 -3
  40. package/dist/{chunk-PD7ZTWMM.js.map → chunk-MAM4U3UR.js.map} +1 -1
  41. package/dist/{chunk-V7UJ55KW.js → chunk-MZDCVTN6.js} +3 -3
  42. package/dist/{chunk-V7UJ55KW.js.map → chunk-MZDCVTN6.js.map} +1 -1
  43. package/dist/{chunk-G6OBZRZM.js → chunk-NHFSEWO2.js} +12 -12
  44. package/dist/{chunk-G6OBZRZM.js.map → chunk-NHFSEWO2.js.map} +1 -1
  45. package/dist/{chunk-I66ZRSEN.js → chunk-NT3TNF3R.js} +3 -3
  46. package/dist/{chunk-I66ZRSEN.js.map → chunk-NT3TNF3R.js.map} +1 -1
  47. package/dist/{chunk-EVULAGR5.js → chunk-O3T7PUBI.js} +3 -3
  48. package/dist/{chunk-EVULAGR5.js.map → chunk-O3T7PUBI.js.map} +1 -1
  49. package/dist/chunk-OOUEURR7.js +24091 -0
  50. package/dist/chunk-OOUEURR7.js.map +1 -0
  51. package/dist/chunk-P6TOL5VY.js +147973 -0
  52. package/dist/chunk-P6TOL5VY.js.map +1 -0
  53. package/dist/{chunk-WC6YYFWP.js → chunk-QB7SZS2C.js} +10 -10
  54. package/dist/{chunk-WC6YYFWP.js.map → chunk-QB7SZS2C.js.map} +1 -1
  55. package/dist/{chunk-N2WVO3GF.js → chunk-QK27VDVB.js} +11 -11
  56. package/dist/{chunk-N2WVO3GF.js.map → chunk-QK27VDVB.js.map} +1 -1
  57. package/dist/chunk-RRVGW333.js +31 -0
  58. package/dist/chunk-RRVGW333.js.map +1 -0
  59. package/dist/{chunk-N6N5ATLY.js → chunk-S4WWYHQM.js} +3 -3
  60. package/dist/{chunk-N6N5ATLY.js.map → chunk-S4WWYHQM.js.map} +1 -1
  61. package/dist/chunk-SC6YCHT7.js +30 -0
  62. package/dist/chunk-SC6YCHT7.js.map +1 -0
  63. package/dist/{chunk-MESOO5GZ.js → chunk-SDEJD2J7.js} +3 -3
  64. package/dist/{chunk-MESOO5GZ.js.map → chunk-SDEJD2J7.js.map} +1 -1
  65. package/dist/{chunk-I7DM47IR.js → chunk-SKDMG3FK.js} +20 -20
  66. package/dist/{chunk-I7DM47IR.js.map → chunk-SKDMG3FK.js.map} +1 -1
  67. package/dist/chunk-UGW266DF.js +30 -0
  68. package/dist/chunk-UGW266DF.js.map +1 -0
  69. package/dist/{chunk-YNVMVDFN.js → chunk-VKG7UEN5.js} +3 -3
  70. package/dist/{chunk-YNVMVDFN.js.map → chunk-VKG7UEN5.js.map} +1 -1
  71. package/dist/chunk-WH6W3NUA.js +30 -0
  72. package/dist/chunk-WH6W3NUA.js.map +1 -0
  73. package/dist/chunk-WSUAPD5M.js +32 -0
  74. package/dist/chunk-WSUAPD5M.js.map +1 -0
  75. package/dist/{chunk-CSVGWTCG.js → chunk-XHDRWM46.js} +3 -3
  76. package/dist/{chunk-CSVGWTCG.js.map → chunk-XHDRWM46.js.map} +1 -1
  77. package/dist/chunk-XQ6MMGV2.js +30 -0
  78. package/dist/chunk-XQ6MMGV2.js.map +1 -0
  79. package/dist/chunk-YOL43ZNQ.js +35 -0
  80. package/dist/chunk-YOL43ZNQ.js.map +1 -0
  81. package/dist/{chunk-SAZA3V2U.js → chunk-ZTDLGGYE.js} +10 -10
  82. package/dist/{chunk-SAZA3V2U.js.map → chunk-ZTDLGGYE.js.map} +1 -1
  83. package/dist/cnaes.d.ts +41 -0
  84. package/dist/cnaes.js +5384 -0
  85. package/dist/cnaes.js.map +1 -0
  86. package/dist/cnh.js +4 -4
  87. package/dist/compare.js +18 -16
  88. package/dist/cpf.js +4 -4
  89. package/dist/data-catalog.d.ts +14 -0
  90. package/dist/data-catalog.js +37 -0
  91. package/dist/data-catalog.js.map +1 -0
  92. package/dist/detect.js +15 -13
  93. package/dist/diff.js +18 -16
  94. package/dist/feriados.d.ts +73 -0
  95. package/dist/feriados.js +243 -0
  96. package/dist/feriados.js.map +1 -0
  97. package/dist/generate.js +25 -23
  98. package/dist/ibge.d.ts +65 -0
  99. package/dist/ibge.js +28174 -0
  100. package/dist/ibge.js.map +1 -0
  101. package/dist/index.d.ts +3 -2
  102. package/dist/index.js +43 -41
  103. package/dist/index.js.map +1 -1
  104. package/dist/mask.js +24 -22
  105. package/dist/ncm.d.ts +41 -0
  106. package/dist/ncm.js +42116 -0
  107. package/dist/ncm.js.map +1 -0
  108. package/dist/pix.js +5 -5
  109. package/dist/placa.js +1 -1
  110. package/dist/renavam.js +4 -4
  111. package/dist/sanitize.js +13 -11
  112. package/dist/telefone.d.ts +32 -1
  113. package/dist/telefone.js +3 -2
  114. package/dist/titulo-eleitor.js +4 -4
  115. package/dist/types-CBIZxgfG.d.ts +28 -0
  116. package/package.json +41 -1
  117. package/dist/chunk-DAR6VOMT.js +0 -192
  118. package/dist/chunk-DAR6VOMT.js.map +0 -1
  119. package/dist/chunk-TE6NSONR.js +0 -43
  120. 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
- Full official sources per type: [docs/OFFICIAL-SOURCES.md](https://github.com/AlexandreZanata/br-validators/blob/main/docs/OFFICIAL-SOURCES.md)
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
 
@@ -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 };