@br-validators/core 1.7.0 → 1.8.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 +25 -7
- package/dist/aeroportos.d.ts +1 -1
- package/dist/anp-combustiveis.d.ts +1 -1
- package/dist/bancos.d.ts +1 -1
- package/dist/batch.d.ts +3 -3
- package/dist/batch.js +27 -25
- package/dist/boleto.d.ts +2 -2
- package/dist/boleto.js +5 -5
- package/dist/brcode.d.ts +2 -2
- package/dist/brcode.js +8 -8
- package/dist/cartao-credito.d.ts +2 -2
- package/dist/cartao-credito.js +3 -3
- package/dist/cbo.d.ts +1 -1
- package/dist/cep.d.ts +3 -3
- package/dist/cep.js +4 -4
- package/dist/cest.d.ts +1 -1
- package/dist/cfop.d.ts +1 -1
- package/dist/{chunk-FL4UUTAC.js → chunk-26HMLR4Y.js} +3 -3
- package/dist/{chunk-FL4UUTAC.js.map → chunk-26HMLR4Y.js.map} +1 -1
- package/dist/{chunk-LPGSPM53.js → chunk-2EYJMAE2.js} +3 -3
- package/dist/{chunk-LPGSPM53.js.map → chunk-2EYJMAE2.js.map} +1 -1
- package/dist/{chunk-NWXFSSGF.js → chunk-2HD6TA3O.js} +3 -3
- package/dist/{chunk-NWXFSSGF.js.map → chunk-2HD6TA3O.js.map} +1 -1
- package/dist/chunk-2NSBFMTP.js +125 -0
- package/dist/chunk-2NSBFMTP.js.map +1 -0
- package/dist/{chunk-VDCITFZG.js → chunk-2ZWBFVYY.js} +3 -3
- package/dist/{chunk-VDCITFZG.js.map → chunk-2ZWBFVYY.js.map} +1 -1
- package/dist/{chunk-EGDZGSHA.js → chunk-3EVLQVBC.js} +3 -3
- package/dist/{chunk-EGDZGSHA.js.map → chunk-3EVLQVBC.js.map} +1 -1
- package/dist/{chunk-A2JXKXPS.js → chunk-3ZIXLRXZ.js} +4 -3
- package/dist/chunk-3ZIXLRXZ.js.map +1 -0
- package/dist/{chunk-MXWI7LLA.js → chunk-47PZ7WGA.js} +23 -19
- package/dist/chunk-47PZ7WGA.js.map +1 -0
- package/dist/{chunk-3OTYX7QX.js → chunk-4T2ZBJFM.js} +3 -3
- package/dist/{chunk-3OTYX7QX.js.map → chunk-4T2ZBJFM.js.map} +1 -1
- package/dist/{chunk-4GMBZLAS.js → chunk-5I6WYO5R.js} +3 -3
- package/dist/{chunk-4GMBZLAS.js.map → chunk-5I6WYO5R.js.map} +1 -1
- package/dist/{chunk-ZZN5JNVJ.js → chunk-7EMUKPPG.js} +8 -8
- package/dist/{chunk-ZZN5JNVJ.js.map → chunk-7EMUKPPG.js.map} +1 -1
- package/dist/{chunk-ULNZHOMA.js → chunk-AG3VELYX.js} +5 -14
- package/dist/chunk-AG3VELYX.js.map +1 -0
- package/dist/chunk-BG72VA7O.js +33 -0
- package/dist/chunk-BG72VA7O.js.map +1 -0
- package/dist/{chunk-4TOP3CZQ.js → chunk-BNM3RSDY.js} +24 -19
- package/dist/chunk-BNM3RSDY.js.map +1 -0
- package/dist/{chunk-RNT4GCP3.js → chunk-BSNVQQTV.js} +25 -20
- package/dist/chunk-BSNVQQTV.js.map +1 -0
- package/dist/chunk-BSSRVJ2C.js +14 -0
- package/dist/chunk-BSSRVJ2C.js.map +1 -0
- package/dist/{chunk-YEVKV2NP.js → chunk-DAX5PVBJ.js} +10 -8
- package/dist/chunk-DAX5PVBJ.js.map +1 -0
- package/dist/{chunk-43FQHKCC.js → chunk-DMUWIPJR.js} +3 -3
- package/dist/{chunk-43FQHKCC.js.map → chunk-DMUWIPJR.js.map} +1 -1
- package/dist/{chunk-G557DGIX.js → chunk-E2BVDZKJ.js} +3 -3
- package/dist/{chunk-G557DGIX.js.map → chunk-E2BVDZKJ.js.map} +1 -1
- package/dist/{chunk-UXH6EHK6.js → chunk-EDJC6HIP.js} +3 -3
- package/dist/{chunk-UXH6EHK6.js.map → chunk-EDJC6HIP.js.map} +1 -1
- package/dist/{chunk-4NFEM2SU.js → chunk-EMZCVV5Y.js} +9 -3
- package/dist/chunk-EMZCVV5Y.js.map +1 -0
- package/dist/chunk-FI2JE6AS.js +15 -0
- package/dist/chunk-FI2JE6AS.js.map +1 -0
- package/dist/{chunk-EOXFX7MM.js → chunk-G4YT6X7N.js} +3 -3
- package/dist/{chunk-EOXFX7MM.js.map → chunk-G4YT6X7N.js.map} +1 -1
- package/dist/chunk-G65WTGYO.js +31 -0
- package/dist/chunk-G65WTGYO.js.map +1 -0
- package/dist/chunk-HIWHBRFG.js +30 -0
- package/dist/chunk-HIWHBRFG.js.map +1 -0
- package/dist/{chunk-SCCMKFSR.js → chunk-J3QGK6MX.js} +33 -33
- package/dist/{chunk-SCCMKFSR.js.map → chunk-J3QGK6MX.js.map} +1 -1
- package/dist/{chunk-P3EJRH4P.js → chunk-LXB5FIAQ.js} +4 -4
- package/dist/{chunk-P3EJRH4P.js.map → chunk-LXB5FIAQ.js.map} +1 -1
- package/dist/{chunk-B4LJI7EP.js → chunk-M3RBXFYG.js} +39 -20
- package/dist/chunk-M3RBXFYG.js.map +1 -0
- package/dist/{chunk-3DLNIUBY.js → chunk-M6VUQK73.js} +5 -5
- package/dist/{chunk-3DLNIUBY.js.map → chunk-M6VUQK73.js.map} +1 -1
- package/dist/{chunk-2M4RVHRO.js → chunk-MLUDCL3P.js} +3 -3
- package/dist/{chunk-2M4RVHRO.js.map → chunk-MLUDCL3P.js.map} +1 -1
- package/dist/{chunk-GVQMJ45R.js → chunk-MZZNNXAB.js} +27 -21
- package/dist/chunk-MZZNNXAB.js.map +1 -0
- package/dist/{chunk-DVA6QQUF.js → chunk-O3HZW2GM.js} +3 -3
- package/dist/{chunk-DVA6QQUF.js.map → chunk-O3HZW2GM.js.map} +1 -1
- package/dist/{chunk-5S3IURHL.js → chunk-O7RJQUAJ.js} +3 -3
- package/dist/{chunk-5S3IURHL.js.map → chunk-O7RJQUAJ.js.map} +1 -1
- package/dist/{chunk-IJ2DAVSD.js → chunk-OM5ELPM6.js} +3 -3
- package/dist/{chunk-IJ2DAVSD.js.map → chunk-OM5ELPM6.js.map} +1 -1
- package/dist/chunk-OPFCKUFX.js +31 -0
- package/dist/chunk-OPFCKUFX.js.map +1 -0
- package/dist/{chunk-2JSOXG2M.js → chunk-P37C3MVF.js} +3 -3
- package/dist/{chunk-2JSOXG2M.js.map → chunk-P37C3MVF.js.map} +1 -1
- package/dist/chunk-P5BDKYBC.js +3 -0
- package/dist/chunk-P5BDKYBC.js.map +1 -0
- package/dist/{chunk-HCH6G5XY.js → chunk-PUTVO6HG.js} +3 -3
- package/dist/{chunk-HCH6G5XY.js.map → chunk-PUTVO6HG.js.map} +1 -1
- package/dist/{chunk-PN4XUBLV.js → chunk-Q2CFVQ2U.js} +3 -3
- package/dist/{chunk-PN4XUBLV.js.map → chunk-Q2CFVQ2U.js.map} +1 -1
- package/dist/{chunk-GAU2MGUQ.js → chunk-QKAXRXU5.js} +3 -3
- package/dist/{chunk-GAU2MGUQ.js.map → chunk-QKAXRXU5.js.map} +1 -1
- package/dist/{chunk-OWD47AWI.js → chunk-QZPKTG4A.js} +3 -3
- package/dist/{chunk-OWD47AWI.js.map → chunk-QZPKTG4A.js.map} +1 -1
- package/dist/{chunk-URNYB2CC.js → chunk-RNI5G42M.js} +4 -4
- package/dist/{chunk-URNYB2CC.js.map → chunk-RNI5G42M.js.map} +1 -1
- package/dist/{chunk-37IHHQKK.js → chunk-ROU5ZHN7.js} +4 -4
- package/dist/{chunk-37IHHQKK.js.map → chunk-ROU5ZHN7.js.map} +1 -1
- package/dist/{chunk-274K6AOM.js → chunk-RP5UWF2G.js} +3 -3
- package/dist/{chunk-274K6AOM.js.map → chunk-RP5UWF2G.js.map} +1 -1
- package/dist/{chunk-QSSKPIG5.js → chunk-SIMI5XYE.js} +3 -3
- package/dist/{chunk-QSSKPIG5.js.map → chunk-SIMI5XYE.js.map} +1 -1
- package/dist/{chunk-TTDHGQEC.js → chunk-SQO7BO3Y.js} +3 -3
- package/dist/{chunk-TTDHGQEC.js.map → chunk-SQO7BO3Y.js.map} +1 -1
- package/dist/{chunk-MXOYICSK.js → chunk-SXPLYH4N.js} +3 -3
- package/dist/{chunk-MXOYICSK.js.map → chunk-SXPLYH4N.js.map} +1 -1
- package/dist/{chunk-F7G4ISQB.js → chunk-UANHHEWY.js} +3 -3
- package/dist/{chunk-F7G4ISQB.js.map → chunk-UANHHEWY.js.map} +1 -1
- package/dist/{chunk-TAOFFAG3.js → chunk-UJXGDUKJ.js} +3 -3
- package/dist/{chunk-TAOFFAG3.js.map → chunk-UJXGDUKJ.js.map} +1 -1
- package/dist/chunk-VXHJLWMA.js +115 -0
- package/dist/chunk-VXHJLWMA.js.map +1 -0
- package/dist/chunk-W64OQYC4.js +13 -0
- package/dist/chunk-W64OQYC4.js.map +1 -0
- package/dist/{chunk-MNBNKSMF.js → chunk-WAVBQYPE.js} +4 -4
- package/dist/{chunk-MNBNKSMF.js.map → chunk-WAVBQYPE.js.map} +1 -1
- package/dist/{chunk-CYBWPBXJ.js → chunk-WE6RG6OC.js} +4 -4
- package/dist/{chunk-CYBWPBXJ.js.map → chunk-WE6RG6OC.js.map} +1 -1
- package/dist/{chunk-Z7KH65RZ.js → chunk-WKDCI3NI.js} +3 -3
- package/dist/{chunk-Z7KH65RZ.js.map → chunk-WKDCI3NI.js.map} +1 -1
- package/dist/chunk-XFKSJRWM.js +14 -0
- package/dist/chunk-XFKSJRWM.js.map +1 -0
- package/dist/chunk-XHHJTKSP.js +33 -0
- package/dist/chunk-XHHJTKSP.js.map +1 -0
- package/dist/chunk-XVT5QOAL.js +30 -0
- package/dist/chunk-XVT5QOAL.js.map +1 -0
- package/dist/{chunk-VE2XZSKP.js → chunk-YA7RWTAE.js} +3 -3
- package/dist/{chunk-VE2XZSKP.js.map → chunk-YA7RWTAE.js.map} +1 -1
- package/dist/chunk-YAHKWOSP.js +35 -0
- package/dist/chunk-YAHKWOSP.js.map +1 -0
- package/dist/{chunk-3ZALSJZT.js → chunk-YJBKWUCE.js} +4 -3
- package/dist/chunk-YJBKWUCE.js.map +1 -0
- package/dist/cnaes.d.ts +4 -2
- package/dist/cnaes.js +2 -1
- package/dist/cnaes.js.map +1 -1
- package/dist/cnh.d.ts +2 -2
- package/dist/cnh.js +4 -4
- package/dist/cnis.d.ts +50 -0
- package/dist/cnis.js +7 -0
- package/dist/cnis.js.map +1 -0
- package/dist/cnpj-motivos.d.ts +52 -0
- package/dist/cnpj-motivos.js +292 -0
- package/dist/cnpj-motivos.js.map +1 -0
- package/dist/cnpj.d.ts +2 -2
- package/dist/cnpj.js +4 -4
- package/dist/compare.d.ts +3 -3
- package/dist/compare.js +29 -27
- package/dist/cpf.d.ts +2 -2
- package/dist/cpf.js +4 -4
- package/dist/cst.d.ts +73 -0
- package/dist/cst.js +482 -0
- package/dist/cst.js.map +1 -0
- package/dist/data-catalog.d.ts +2 -2
- package/dist/data-catalog.js +42 -28
- package/dist/data-catalog.js.map +1 -1
- package/dist/detect.d.ts +2 -2
- package/dist/detect.js +25 -23
- package/dist/diff.d.ts +3 -3
- package/dist/diff.js +29 -27
- package/dist/ean.d.ts +43 -0
- package/dist/ean.js +6 -0
- package/dist/ean.js.map +1 -0
- package/dist/esocial.d.ts +45 -0
- package/dist/esocial.js +387 -0
- package/dist/esocial.js.map +1 -0
- package/dist/feriados.d.ts +1 -1
- package/dist/generate.d.ts +1 -1
- package/dist/generate.js +38 -36
- package/dist/ibge.d.ts +34 -2
- package/dist/ibge.js +109 -1
- package/dist/ibge.js.map +1 -1
- package/dist/ibpt.d.ts +74 -0
- package/dist/ibpt.js +166 -0
- package/dist/ibpt.js.map +1 -0
- package/dist/incoterms.d.ts +1 -1
- package/dist/{index-CJ5ACErT.d.ts → index-BmoilwS2.d.ts} +2 -2
- package/dist/index.d.ts +11 -9
- package/dist/index.js +70 -60
- package/dist/index.js.map +1 -1
- package/dist/{inscricao-estadual-produtor-rural-BNAyLQPY.d.ts → inscricao-estadual-produtor-rural-Hfq6jN1n.d.ts} +1 -1
- package/dist/inscricao-estadual-produtor-rural.d.ts +2 -2
- package/dist/inscricao-estadual-produtor-rural.js +3 -3
- package/dist/inscricao-estadual.d.ts +3 -3
- package/dist/inscricao-estadual.js +4 -4
- package/dist/lc116.d.ts +42 -0
- package/dist/lc116.js +866 -0
- package/dist/lc116.js.map +1 -0
- package/dist/mask.d.ts +3 -3
- package/dist/mask.js +41 -37
- package/dist/moedas.d.ts +1 -1
- package/dist/natureza-juridica.d.ts +1 -1
- package/dist/nbs.d.ts +1 -1
- package/dist/ncm.d.ts +1 -1
- package/dist/nfe-chave.d.ts +2 -2
- package/dist/nfe-chave.js +3 -3
- package/dist/paises-bacen.d.ts +1 -1
- package/dist/pis-pasep.d.ts +2 -2
- package/dist/pis-pasep.js +5 -3
- package/dist/{pix-QsM0lMas.d.ts → pix-BcPQzXRx.d.ts} +1 -1
- package/dist/pix.d.ts +2 -2
- package/dist/pix.js +8 -8
- package/dist/placa.d.ts +2 -2
- package/dist/placa.js +4 -4
- package/dist/pncp-reference.d.ts +1 -1
- package/dist/portos.d.ts +1 -1
- package/dist/processo-judicial.d.ts +2 -2
- package/dist/processo-judicial.js +3 -3
- package/dist/ptax.d.ts +53 -0
- package/dist/ptax.js +485 -0
- package/dist/ptax.js.map +1 -0
- package/dist/renavam.d.ts +2 -2
- package/dist/renavam.js +4 -4
- package/dist/rg.d.ts +2 -2
- package/dist/rg.js +2 -2
- package/dist/sanitize.d.ts +2 -2
- package/dist/sanitize.js +24 -22
- package/dist/simples-nacional.d.ts +67 -0
- package/dist/simples-nacional.js +178 -0
- package/dist/simples-nacional.js.map +1 -0
- package/dist/telefone.d.ts +3 -3
- package/dist/telefone.js +3 -3
- package/dist/titulo-eleitor.d.ts +2 -2
- package/dist/titulo-eleitor.js +4 -4
- package/dist/transparencia-snapshots.d.ts +1 -1
- package/dist/transparencia-snapshots.js +1 -1
- package/dist/tse-municipios.d.ts +1 -1
- package/dist/{types-CCKLomYy.d.ts → types-CnePu8im.d.ts} +1 -1
- package/dist/{types-CQvCmvGu.d.ts → types-DTtrW1Km.d.ts} +2 -2
- package/dist/{validation-result-hfVg2-Mc.d.ts → validation-result-Rb7C0_xj.d.ts} +30 -2
- package/package.json +47 -2
- package/dist/chunk-3ZALSJZT.js.map +0 -1
- package/dist/chunk-4NFEM2SU.js.map +0 -1
- package/dist/chunk-4TOP3CZQ.js.map +0 -1
- package/dist/chunk-A2JXKXPS.js.map +0 -1
- package/dist/chunk-B4LJI7EP.js.map +0 -1
- package/dist/chunk-GVQMJ45R.js.map +0 -1
- package/dist/chunk-MXWI7LLA.js.map +0 -1
- package/dist/chunk-RNT4GCP3.js.map +0 -1
- package/dist/chunk-ULNZHOMA.js.map +0 -1
- package/dist/chunk-WAYYRZ2L.js +0 -23
- package/dist/chunk-WAYYRZ2L.js.map +0 -1
- package/dist/chunk-YEVKV2NP.js.map +0 -1
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// src/simples-nacional/data/metadata.json
|
|
2
|
+
var metadata_default = {
|
|
3
|
+
id: "simples-nacional",
|
|
4
|
+
nome: "LC 123/2006 \u2014 Simples Nacional (anexos e faixas)",
|
|
5
|
+
fonte: "Lei Complementar 123/2006 \u2014 Anexos I a V (reda\xE7\xE3o LC 155/2016)",
|
|
6
|
+
endpoints: [
|
|
7
|
+
"https://www.planalto.gov.br/ccivil_03/leis/lcp/lcp123.htm",
|
|
8
|
+
"http://normas.receita.fazenda.gov.br/sijut2consulta/anexoOutros.action?idArquivoBinario=48430",
|
|
9
|
+
"http://normas.receita.fazenda.gov.br/sijut2consulta/link.action?visao=anotado&idAto=115262"
|
|
10
|
+
],
|
|
11
|
+
capturadoEm: "2026-06-25",
|
|
12
|
+
atualizadoEm: "2026-06-25T13:34:24.570Z",
|
|
13
|
+
contagens: {
|
|
14
|
+
anexos: 5,
|
|
15
|
+
faixas: 30
|
|
16
|
+
},
|
|
17
|
+
alteracoes: {
|
|
18
|
+
adicionados: 0,
|
|
19
|
+
removidos: 0,
|
|
20
|
+
alterados: 0,
|
|
21
|
+
comparadoCom: "2026-06-25"
|
|
22
|
+
},
|
|
23
|
+
verificacao: {
|
|
24
|
+
agendamento: "manual",
|
|
25
|
+
workflow: "data-refresh-bot.yml",
|
|
26
|
+
ultimaExecucao: "2026-06-25T13:34:24.570Z"
|
|
27
|
+
},
|
|
28
|
+
documentacao: "docs/OFFICIAL-SOURCES.md#simples-nacional-anexos"
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export { metadata_default };
|
|
32
|
+
//# sourceMappingURL=chunk-BG72VA7O.js.map
|
|
33
|
+
//# sourceMappingURL=chunk-BG72VA7O.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/simples-nacional/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,kBAAA;AAAA,EACN,IAAA,EAAQ,uDAAA;AAAA,EACR,KAAA,EAAS,2EAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,2DAAA;AAAA,IACA,+FAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,MAAA,EAAU,CAAA;AAAA,IACV,MAAA,EAAU;AAAA,GACZ;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,CAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-BG72VA7O.js","sourcesContent":["{\n \"id\": \"simples-nacional\",\n \"nome\": \"LC 123/2006 — Simples Nacional (anexos e faixas)\",\n \"fonte\": \"Lei Complementar 123/2006 — Anexos I a V (redação LC 155/2016)\",\n \"endpoints\": [\n \"https://www.planalto.gov.br/ccivil_03/leis/lcp/lcp123.htm\",\n \"http://normas.receita.fazenda.gov.br/sijut2consulta/anexoOutros.action?idArquivoBinario=48430\",\n \"http://normas.receita.fazenda.gov.br/sijut2consulta/link.action?visao=anotado&idAto=115262\"\n ],\n \"capturadoEm\": \"2026-06-25\",\n \"atualizadoEm\": \"2026-06-25T13:34:24.570Z\",\n \"contagens\": {\n \"anexos\": 5,\n \"faixas\": 30\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-06-25\"\n },\n \"verificacao\": {\n \"agendamento\": \"manual\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-25T13:34:24.570Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#simples-nacional-anexos\"\n}\n"]}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import { applyFixes } from './chunk-
|
|
2
|
-
import { validateRg } from './chunk-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { validateTelefone } from './chunk-
|
|
6
|
-
import { validateTituloEleitor } from './chunk-
|
|
7
|
-
import { validatePisPasep } from './chunk-
|
|
8
|
-
import { validatePlaca } from './chunk-
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import { validateCpf } from './chunk-
|
|
17
|
-
import {
|
|
1
|
+
import { applyFixes } from './chunk-DAX5PVBJ.js';
|
|
2
|
+
import { validateRg } from './chunk-E2BVDZKJ.js';
|
|
3
|
+
import { validateRenavam } from './chunk-QKAXRXU5.js';
|
|
4
|
+
import { validateProcessoJudicial } from './chunk-YA7RWTAE.js';
|
|
5
|
+
import { validateTelefone } from './chunk-2HD6TA3O.js';
|
|
6
|
+
import { validateTituloEleitor } from './chunk-Q2CFVQ2U.js';
|
|
7
|
+
import { validatePisPasep } from './chunk-AG3VELYX.js';
|
|
8
|
+
import { validatePlaca } from './chunk-P37C3MVF.js';
|
|
9
|
+
import { validateNfeChave } from './chunk-OM5ELPM6.js';
|
|
10
|
+
import { validateInscricaoEstadual } from './chunk-LXB5FIAQ.js';
|
|
11
|
+
import { validateIeSpRural } from './chunk-UJXGDUKJ.js';
|
|
12
|
+
import { validateEan } from './chunk-2NSBFMTP.js';
|
|
13
|
+
import { validateCep } from './chunk-UANHHEWY.js';
|
|
14
|
+
import { validateCnh } from './chunk-G4YT6X7N.js';
|
|
15
|
+
import { validateBoleto } from './chunk-M6VUQK73.js';
|
|
16
|
+
import { validateCpf } from './chunk-PUTVO6HG.js';
|
|
17
|
+
import { validateCnpj } from './chunk-MLUDCL3P.js';
|
|
18
|
+
import { validateCartaoCredito } from './chunk-2ZWBFVYY.js';
|
|
18
19
|
|
|
19
20
|
// src/sanitize/index.ts
|
|
20
21
|
function sanitize(raw, type, options = {}) {
|
|
@@ -97,6 +98,10 @@ function validateFixed(value, type, uf) {
|
|
|
97
98
|
const result = validateCartaoCredito(value);
|
|
98
99
|
return result.ok ? { ok: true, value: result.value } : result;
|
|
99
100
|
}
|
|
101
|
+
case "ean": {
|
|
102
|
+
const result = validateEan(value);
|
|
103
|
+
return result.ok ? { ok: true, value: result.value } : result;
|
|
104
|
+
}
|
|
100
105
|
case "inscricao-estadual": {
|
|
101
106
|
const result = validateInscricaoEstadual(value, { uf });
|
|
102
107
|
return result.ok ? { ok: true, value: result.value } : result;
|
|
@@ -113,5 +118,5 @@ function validateFixed(value, type, uf) {
|
|
|
113
118
|
}
|
|
114
119
|
|
|
115
120
|
export { sanitize };
|
|
116
|
-
//# sourceMappingURL=chunk-
|
|
117
|
-
//# sourceMappingURL=chunk-
|
|
121
|
+
//# sourceMappingURL=chunk-BNM3RSDY.js.map
|
|
122
|
+
//# sourceMappingURL=chunk-BNM3RSDY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sanitize/index.ts"],"names":[],"mappings":"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","file":"chunk-BNM3RSDY.js","sourcesContent":["/**\n * ETL-style document sanitization — applies fixes then validates (BR-SANITIZE-001).\n * @see docs/VALIDATION-RULES.md\n */\nimport { validateBoleto } from '../core/boleto/index.js';\nimport { validateCartaoCredito } from '../core/cartao-credito/index.js';\nimport { validateEan } from '../core/ean/index.js';\nimport { validateCep } from '../core/cep/index.js';\nimport { validateCnh } from '../core/cnh/index.js';\nimport { validateCnpj } from '../core/cnpj/index.js';\nimport { validateCpf } from '../core/cpf/index.js';\nimport { validateInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { validateIeSpRural } from '../core/inscricao-estadual/sp-rural.js';\nimport { validateNfeChave } from '../core/nfe-chave/index.js';\nimport { validatePisPasep } from '../core/pis-pasep/index.js';\nimport { validatePlaca } from '../core/placa/index.js';\nimport { validateProcessoJudicial } from '../core/processo-judicial/index.js';\nimport { validateRg } from '../core/rg/index.js';\nimport type { RgUfCode } from '../types/validation-result.js';\nimport { validateRenavam } from '../core/renavam/index.js';\nimport { validateTelefone } from '../core/telefone/index.js';\nimport { validateTituloEleitor } from '../core/titulo-eleitor/index.js';\nimport type { UfCode, ValidationErrorCode } from '../types/validation-result.js';\nimport { applyFixes } from './fixes.js';\n\nexport type SanitizableDocumentType =\n | 'cpf'\n | 'cnpj'\n | 'cep'\n | 'placa'\n | 'pis-pasep'\n | 'telefone'\n | 'cnh'\n | 'renavam'\n | 'titulo-eleitor'\n | 'processo-judicial'\n | 'rg'\n | 'nfe-chave'\n | 'boleto'\n | 'cartao-credito'\n | 'ean'\n | 'inscricao-estadual'\n | 'inscricao-estadual-produtor-rural';\n\nexport type SanitizeOptions = {\n uf?: UfCode;\n};\n\nexport type SanitizeSuccess = {\n ok: true;\n value: string;\n fixes: string[];\n};\n\nexport type SanitizeFailure = {\n ok: false;\n code: ValidationErrorCode;\n message: string;\n};\n\nexport type SanitizeResult = SanitizeSuccess | SanitizeFailure;\n\nexport type { FixResult } from './fixes.js';\n\ntype ValidateFixedResult =\n | { ok: true; value: string }\n | { ok: false; code: ValidationErrorCode; message: string };\n\nexport function sanitize(\n raw: string,\n type: SanitizableDocumentType,\n options: SanitizeOptions = {},\n): SanitizeResult {\n const { value: fixed, fixes } = applyFixes(raw, type);\n\n if (type === 'inscricao-estadual' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for inscricao-estadual sanitization',\n };\n }\n\n if (type === 'rg' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for RG sanitization',\n };\n }\n\n const validation = validateFixed(fixed, type, options.uf);\n if (!validation.ok) {\n return { ok: false, code: validation.code, message: validation.message };\n }\n\n return { ok: true, value: validation.value, fixes };\n}\n\nfunction validateFixed(value: string, type: SanitizableDocumentType, uf?: UfCode): ValidateFixedResult {\n switch (type) {\n case 'cpf': {\n const result = validateCpf(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cnpj': {\n const result = validateCnpj(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cep': {\n const result = validateCep(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'placa': {\n const result = validatePlaca(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'pis-pasep': {\n const result = validatePisPasep(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'telefone': {\n const result = validateTelefone(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cnh': {\n const result = validateCnh(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'renavam': {\n const result = validateRenavam(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'titulo-eleitor': {\n const result = validateTituloEleitor(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'processo-judicial': {\n const result = validateProcessoJudicial(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'rg': {\n const result = validateRg(value, { uf: uf as RgUfCode });\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'nfe-chave': {\n const result = validateNfeChave(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'boleto': {\n const result = validateBoleto(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cartao-credito': {\n const result = validateCartaoCredito(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'ean': {\n const result = validateEan(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'inscricao-estadual': {\n const result = validateInscricaoEstadual(value, { uf: uf as UfCode });\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'inscricao-estadual-produtor-rural': {\n const result = validateIeSpRural(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n default: {\n const _exhaustive: never = type;\n return { ok: false, code: 'UNSUPPORTED_FORMAT', message: `Unsupported type: ${String(_exhaustive)}` };\n }\n }\n}\n"]}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import { validateRg } from './chunk-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { validateTelefone } from './chunk-
|
|
5
|
-
import { validateTituloEleitor } from './chunk-
|
|
6
|
-
import { validatePisPasep } from './chunk-
|
|
7
|
-
import { validatePlaca } from './chunk-
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import { validateCpf } from './chunk-
|
|
18
|
-
import {
|
|
1
|
+
import { validateRg } from './chunk-E2BVDZKJ.js';
|
|
2
|
+
import { validateRenavam } from './chunk-QKAXRXU5.js';
|
|
3
|
+
import { validateProcessoJudicial } from './chunk-YA7RWTAE.js';
|
|
4
|
+
import { validateTelefone } from './chunk-2HD6TA3O.js';
|
|
5
|
+
import { validateTituloEleitor } from './chunk-Q2CFVQ2U.js';
|
|
6
|
+
import { validatePisPasep } from './chunk-AG3VELYX.js';
|
|
7
|
+
import { validatePlaca } from './chunk-P37C3MVF.js';
|
|
8
|
+
import { validateNfeChave } from './chunk-OM5ELPM6.js';
|
|
9
|
+
import { validateInscricaoEstadual } from './chunk-LXB5FIAQ.js';
|
|
10
|
+
import { validateIeSpRural } from './chunk-UJXGDUKJ.js';
|
|
11
|
+
import { validateEan } from './chunk-2NSBFMTP.js';
|
|
12
|
+
import { validateCep } from './chunk-UANHHEWY.js';
|
|
13
|
+
import { validateCnh } from './chunk-G4YT6X7N.js';
|
|
14
|
+
import { validateBoleto } from './chunk-M6VUQK73.js';
|
|
15
|
+
import { validateBrCode } from './chunk-ROU5ZHN7.js';
|
|
16
|
+
import { validatePixKey } from './chunk-7EMUKPPG.js';
|
|
17
|
+
import { validateCpf } from './chunk-PUTVO6HG.js';
|
|
18
|
+
import { validateCnpj } from './chunk-MLUDCL3P.js';
|
|
19
|
+
import { validateCartaoCredito } from './chunk-2ZWBFVYY.js';
|
|
19
20
|
|
|
20
21
|
// src/platform/validate-dispatch.ts
|
|
21
22
|
function validateForPlatform(input, type, options = {}) {
|
|
@@ -90,6 +91,10 @@ function validateForPlatform(input, type, options = {}) {
|
|
|
90
91
|
const result = validateCartaoCredito(input);
|
|
91
92
|
return result.ok ? { ok: true, value: result.value } : result;
|
|
92
93
|
}
|
|
94
|
+
case "ean": {
|
|
95
|
+
const result = validateEan(input);
|
|
96
|
+
return result.ok ? { ok: true, value: result.value } : result;
|
|
97
|
+
}
|
|
93
98
|
case "inscricao-estadual": {
|
|
94
99
|
const result = validateInscricaoEstadual(input, { uf: options.uf });
|
|
95
100
|
return result.ok ? { ok: true, value: result.value } : result;
|
|
@@ -141,5 +146,5 @@ function batch(inputs, type, options = {}) {
|
|
|
141
146
|
}
|
|
142
147
|
|
|
143
148
|
export { batch };
|
|
144
|
-
//# sourceMappingURL=chunk-
|
|
145
|
-
//# sourceMappingURL=chunk-
|
|
149
|
+
//# sourceMappingURL=chunk-BSNVQQTV.js.map
|
|
150
|
+
//# sourceMappingURL=chunk-BSNVQQTV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/platform/validate-dispatch.ts","../src/batch/index.ts"],"names":[],"mappings":"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","file":"chunk-BSNVQQTV.js","sourcesContent":["import { validateBrCode } from '../core/brcode/index.js';\nimport { validateBoleto } from '../core/boleto/index.js';\nimport { validateCartaoCredito } from '../core/cartao-credito/index.js';\nimport { validateEan } from '../core/ean/index.js';\nimport { validateCep } from '../core/cep/index.js';\nimport { validateCnh } from '../core/cnh/index.js';\nimport { validateCnpj } from '../core/cnpj/index.js';\nimport { validateCpf } from '../core/cpf/index.js';\nimport { validateInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { validateIeSpRural } from '../core/inscricao-estadual/sp-rural.js';\nimport { validateNfeChave } from '../core/nfe-chave/index.js';\nimport { validatePisPasep } from '../core/pis-pasep/index.js';\nimport { validatePlaca } from '../core/placa/index.js';\nimport { validatePixKey } from '../core/pix/index.js';\nimport { validateRenavam } from '../core/renavam/index.js';\nimport { validateTelefone } from '../core/telefone/index.js';\nimport { validateProcessoJudicial } from '../core/processo-judicial/index.js';\nimport { validateRg } from '../core/rg/index.js';\nimport type { RgUfCode } from '../types/validation-result.js';\nimport { validateTituloEleitor } from '../core/titulo-eleitor/index.js';\nimport type { UfCode, ValidationErrorCode } from '../types/validation-result.js';\nimport type { PlatformDocumentType, PlatformOptions } from './types.js';\n\nexport type ValidateDispatchSuccess = { ok: true; value: string };\nexport type ValidateDispatchFailure = {\n ok: false;\n code: ValidationErrorCode;\n message: string;\n};\nexport type ValidateDispatchResult = ValidateDispatchSuccess | ValidateDispatchFailure;\n\nexport function validateForPlatform(\n input: string,\n type: PlatformDocumentType,\n options: PlatformOptions = {},\n): ValidateDispatchResult {\n if (type === 'inscricao-estadual' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for inscricao-estadual validation',\n };\n }\n\n if (type === 'rg' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for RG validation',\n };\n }\n\n switch (type) {\n case 'cpf': {\n const result = validateCpf(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cnpj': {\n const result = validateCnpj(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cep': {\n const result = validateCep(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'placa': {\n const result = validatePlaca(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'pis-pasep': {\n const result = validatePisPasep(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'telefone': {\n const result = validateTelefone(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cnh': {\n const result = validateCnh(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'renavam': {\n const result = validateRenavam(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'titulo-eleitor': {\n const result = validateTituloEleitor(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'processo-judicial': {\n const result = validateProcessoJudicial(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'rg': {\n const result = validateRg(input, { uf: options.uf as RgUfCode });\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'nfe-chave': {\n const result = validateNfeChave(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'boleto': {\n const result = validateBoleto(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cartao-credito': {\n const result = validateCartaoCredito(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'ean': {\n const result = validateEan(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'inscricao-estadual': {\n const result = validateInscricaoEstadual(input, { uf: options.uf as UfCode });\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'inscricao-estadual-produtor-rural': {\n const result = validateIeSpRural(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'pix': {\n const result = validatePixKey(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'brcode': {\n const result = validateBrCode(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n default: {\n const _exhaustive: never = type;\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: `Unsupported type: ${String(_exhaustive)}`,\n };\n }\n }\n}\n","/**\n * Batch validation — maps `validate*` per row, never throws (BR-BATCH-001).\n * @see docs/OFFICIAL-SOURCES.md\n */\nimport { validateForPlatform } from '../platform/validate-dispatch.js';\nimport type { PlatformDocumentType, PlatformOptions } from '../platform/types.js';\nimport type { ValidationErrorCode } from '../types/validation-result.js';\n\nexport type BatchValidEntry = {\n index: number;\n input: string;\n value: string;\n};\n\nexport type BatchInvalidEntry = {\n index: number;\n input: string;\n code: ValidationErrorCode;\n message: string;\n};\n\nexport type BatchSummary = {\n total: number;\n valid: number;\n invalid: number;\n};\n\nexport type BatchResult = {\n valid: BatchValidEntry[];\n invalid: BatchInvalidEntry[];\n summary: BatchSummary;\n};\n\nexport function batch(\n inputs: readonly string[],\n type: PlatformDocumentType,\n options: PlatformOptions = {},\n): BatchResult {\n const valid: BatchValidEntry[] = [];\n const invalid: BatchInvalidEntry[] = [];\n\n inputs.forEach((input, index) => {\n const result = validateForPlatform(input, type, options);\n if (result.ok) {\n valid.push({ index, input, value: result.value });\n } else {\n invalid.push({ index, input, code: result.code, message: result.message });\n }\n });\n\n return {\n valid,\n invalid,\n summary: {\n total: inputs.length,\n valid: valid.length,\n invalid: invalid.length,\n },\n };\n}\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { validateEan, applyEanMask } from './chunk-2NSBFMTP.js';
|
|
2
|
+
|
|
3
|
+
// src/format/ean.ts
|
|
4
|
+
function formatEan(input) {
|
|
5
|
+
const result = validateEan(input);
|
|
6
|
+
if (!result.ok) {
|
|
7
|
+
return { ok: false, code: result.code, message: result.message };
|
|
8
|
+
}
|
|
9
|
+
return { ok: true, formatted: applyEanMask(result.value) };
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export { formatEan };
|
|
13
|
+
//# sourceMappingURL=chunk-BSSRVJ2C.js.map
|
|
14
|
+
//# sourceMappingURL=chunk-BSSRVJ2C.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/format/ean.ts"],"names":[],"mappings":";;;AAIO,SAAS,UAAU,KAAA,EAA6B;AACrD,EAAA,MAAM,MAAA,GAAS,YAAY,KAAK,CAAA;AAChC,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AACA,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,WAAW,YAAA,CAAa,MAAA,CAAO,KAAK,CAAA,EAAE;AAC3D","file":"chunk-BSSRVJ2C.js","sourcesContent":["import { applyEanMask } from '../core/ean/mask.js';\nimport { validateEan } from '../core/ean/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatEan(input: string): FormatResult {\n const result = validateEan(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyEanMask(result.value) };\n}\n"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { stripProcessoJudicial } from './chunk-
|
|
2
|
-
import { normalizeTelefoneDigits, extractTelefoneDigits } from './chunk-
|
|
3
|
-
import { stripPisPasep } from './chunk-
|
|
4
|
-
import { stripInscricaoEstadual } from './chunk-
|
|
5
|
-
import { stripIeSpRural } from './chunk-
|
|
1
|
+
import { stripProcessoJudicial } from './chunk-YA7RWTAE.js';
|
|
2
|
+
import { normalizeTelefoneDigits, extractTelefoneDigits } from './chunk-2HD6TA3O.js';
|
|
3
|
+
import { stripPisPasep } from './chunk-AG3VELYX.js';
|
|
4
|
+
import { stripInscricaoEstadual } from './chunk-LXB5FIAQ.js';
|
|
5
|
+
import { stripIeSpRural } from './chunk-UJXGDUKJ.js';
|
|
6
6
|
import { stripTituloEleitor, stripRenavam, stripCnh, stripPlaca, stripCep } from './chunk-YYHS5WQN.js';
|
|
7
7
|
import { stripNfeChave } from './chunk-4SNBZFS5.js';
|
|
8
|
-
import { stripCnpj } from './chunk-EB3G4IG6.js';
|
|
9
8
|
import { stripCpf } from './chunk-UCJPSJN5.js';
|
|
9
|
+
import { stripCnpj } from './chunk-EB3G4IG6.js';
|
|
10
10
|
|
|
11
11
|
// src/sanitize/fixes.ts
|
|
12
12
|
function trimFix(raw) {
|
|
@@ -76,6 +76,7 @@ function applyFixes(raw, type) {
|
|
|
76
76
|
case "renavam":
|
|
77
77
|
case "nfe-chave":
|
|
78
78
|
case "cartao-credito":
|
|
79
|
+
case "ean":
|
|
79
80
|
case "boleto":
|
|
80
81
|
case "titulo-eleitor":
|
|
81
82
|
case "processo-judicial":
|
|
@@ -126,6 +127,7 @@ function stripForType(value, type) {
|
|
|
126
127
|
case "boleto":
|
|
127
128
|
return value.replace(/\D/g, "");
|
|
128
129
|
case "cartao-credito":
|
|
130
|
+
case "ean":
|
|
129
131
|
return value.replace(/\D/g, "");
|
|
130
132
|
case "inscricao-estadual":
|
|
131
133
|
return stripInscricaoEstadual(value);
|
|
@@ -139,5 +141,5 @@ function stripForType(value, type) {
|
|
|
139
141
|
}
|
|
140
142
|
|
|
141
143
|
export { applyFixes, stripForType };
|
|
142
|
-
//# sourceMappingURL=chunk-
|
|
143
|
-
//# sourceMappingURL=chunk-
|
|
144
|
+
//# sourceMappingURL=chunk-DAX5PVBJ.js.map
|
|
145
|
+
//# sourceMappingURL=chunk-DAX5PVBJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sanitize/fixes.ts"],"names":[],"mappings":"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","file":"chunk-DAX5PVBJ.js","sourcesContent":["import { stripCep } from '../strip/cep.js';\nimport { stripCnh } from '../strip/cnh.js';\nimport { stripCnpj } from '../strip/cnpj.js';\nimport { stripCpf } from '../strip/cpf.js';\nimport { stripIeSpRural } from '../strip/inscricao-estadual-produtor-rural.js';\nimport { stripInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { stripNfeChave } from '../strip/nfe-chave.js';\nimport { stripPisPasep } from '../strip/pis-pasep.js';\nimport { stripPlaca } from '../strip/placa.js';\nimport { stripProcessoJudicial } from '../strip/processo-judicial.js';\nimport { stripRenavam } from '../strip/renavam.js';\nimport { stripTituloEleitor } from '../strip/titulo-eleitor.js';\nimport { extractTelefoneDigits, normalizeTelefoneDigits } from '../strip/telefone.js';\n\nexport type SanitizableDocumentType =\n | 'cpf'\n | 'cnpj'\n | 'cep'\n | 'placa'\n | 'pis-pasep'\n | 'telefone'\n | 'cnh'\n | 'renavam'\n | 'titulo-eleitor'\n | 'processo-judicial'\n | 'rg'\n | 'nfe-chave'\n | 'boleto'\n | 'cartao-credito'\n | 'ean'\n | 'inscricao-estadual'\n | 'inscricao-estadual-produtor-rural';\n\nexport type FixResult = {\n value: string;\n fixes: string[];\n};\n\nfunction trimFix(raw: string): FixResult {\n const trimmed = raw.trim();\n const fixes: string[] = [];\n if (trimmed !== raw) {\n fixes.push('trimmed');\n }\n return { value: trimmed, fixes };\n}\n\nfunction digitsFix(value: string, fixes: string[]): FixResult {\n const digits = value.replace(/\\D/g, '');\n if (digits !== value) {\n fixes.push('removed_non_digits');\n }\n return { value: digits, fixes };\n}\n\nfunction upperAndStripSeparators(value: string, fixes: string[]): FixResult {\n const upper = value.toUpperCase();\n if (upper !== value) {\n fixes.push('uppercased');\n }\n const stripped = upper.replace(/[^A-Z0-9]/g, '');\n if (stripped !== upper) {\n fixes.push('removed_separators');\n }\n return { value: stripped, fixes };\n}\n\nfunction placaFix(value: string, fixes: string[]): FixResult {\n const upper = value.toUpperCase();\n if (upper !== value) {\n fixes.push('uppercased');\n }\n if (/[-.\\s/]/.test(value)) {\n fixes.push('removed_separators');\n }\n return { value: stripPlaca(upper), fixes };\n}\n\nfunction telefoneFix(value: string, fixes: string[]): FixResult {\n if (/[\\s()-]/.test(value)) {\n fixes.push('removed_mask_chars');\n }\n const digitsOnly = extractTelefoneDigits(value);\n const normalized = normalizeTelefoneDigits(value);\n if (normalized !== digitsOnly && normalized.length > 0) {\n fixes.push('normalized_national');\n }\n return { value: normalized, fixes };\n}\n\nfunction ieProdutorRuralFix(value: string, fixes: string[]): FixResult {\n const upper = value.toUpperCase();\n if (upper !== value) {\n fixes.push('uppercased');\n }\n if (/^[Pp]/.test(upper)) {\n fixes.push('preserved_p_prefix');\n }\n return { value: stripIeSpRural(upper), fixes };\n}\n\nexport function applyFixes(raw: string, type: SanitizableDocumentType): FixResult {\n const { value: trimmed, fixes } = trimFix(raw);\n\n switch (type) {\n case 'cpf':\n case 'cep':\n case 'pis-pasep':\n case 'cnh':\n case 'renavam':\n case 'nfe-chave':\n case 'cartao-credito':\n case 'ean':\n case 'boleto':\n case 'titulo-eleitor':\n case 'processo-judicial':\n case 'inscricao-estadual':\n return digitsFix(trimmed, fixes);\n case 'rg':\n return upperAndStripSeparators(trimmed, fixes);\n case 'cnpj':\n return upperAndStripSeparators(trimmed, fixes);\n case 'placa':\n return placaFix(trimmed, fixes);\n case 'telefone':\n return telefoneFix(trimmed, fixes);\n case 'inscricao-estadual-produtor-rural':\n return ieProdutorRuralFix(trimmed, fixes);\n default: {\n const _exhaustive: never = type;\n return { value: _exhaustive, fixes };\n }\n }\n}\n\n/** Validates canonical strip output matches fix pipeline (used in tests). */\nexport function stripForType(value: string, type: SanitizableDocumentType): string {\n switch (type) {\n case 'cpf':\n return stripCpf(value);\n case 'cnpj':\n return stripCnpj(value);\n case 'cep':\n return stripCep(value);\n case 'placa':\n return stripPlaca(value);\n case 'pis-pasep':\n return stripPisPasep(value);\n case 'telefone':\n return normalizeTelefoneDigits(value);\n case 'cnh':\n return stripCnh(value);\n case 'renavam':\n return stripRenavam(value);\n case 'titulo-eleitor':\n return stripTituloEleitor(value);\n case 'processo-judicial':\n return stripProcessoJudicial(value);\n case 'rg':\n return value.toUpperCase().replace(/[^A-Z0-9]/g, '');\n case 'nfe-chave':\n return stripNfeChave(value);\n case 'boleto':\n return value.replace(/\\D/g, '');\n case 'cartao-credito':\n case 'ean':\n return value.replace(/\\D/g, '');\n case 'inscricao-estadual':\n return stripInscricaoEstadual(value);\n case 'inscricao-estadual-produtor-rural':\n return stripIeSpRural(value);\n default: {\n const _exhaustive: never = type;\n return _exhaustive;\n }\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { validateRenavam, RENAVAM_NUMERIC_PATTERN, RENAVAM_LENGTH } from './chunk-
|
|
1
|
+
import { validateRenavam, RENAVAM_NUMERIC_PATTERN, RENAVAM_LENGTH } from './chunk-QKAXRXU5.js';
|
|
2
2
|
|
|
3
3
|
// src/core/renavam/mask.ts
|
|
4
4
|
function applyRenavamCanonicalFormat(canonical) {
|
|
@@ -18,5 +18,5 @@ function formatRenavam(input) {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
export { formatRenavam };
|
|
21
|
-
//# sourceMappingURL=chunk-
|
|
22
|
-
//# sourceMappingURL=chunk-
|
|
21
|
+
//# sourceMappingURL=chunk-DMUWIPJR.js.map
|
|
22
|
+
//# sourceMappingURL=chunk-DMUWIPJR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/renavam/mask.ts","../src/format/renavam.ts"],"names":[],"mappings":";;;AAMO,SAAS,4BAA4B,SAAA,EAA2B;AACrE,EAAA,IAAI,CAAC,uBAAA,CAAwB,IAAA,CAAK,SAAS,CAAA,EAAG;AAC5C,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,0BAAA,EAA6B,cAAc,CAAA,iBAAA,CAAmB,CAAA;AAAA,EAChF;AACA,EAAA,OAAO,SAAA;AACT;;;ACPO,SAAS,cAAc,KAAA,EAA6B;AACzD,EAAA,MAAM,MAAA,GAAS,gBAAgB,KAAK,CAAA;AACpC,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AACA,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,WAAW,2BAAA,CAA4B,MAAA,CAAO,KAAK,CAAA,EAAE;AAC1E","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/core/renavam/mask.ts","../src/format/renavam.ts"],"names":[],"mappings":";;;AAMO,SAAS,4BAA4B,SAAA,EAA2B;AACrE,EAAA,IAAI,CAAC,uBAAA,CAAwB,IAAA,CAAK,SAAS,CAAA,EAAG;AAC5C,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,0BAAA,EAA6B,cAAc,CAAA,iBAAA,CAAmB,CAAA;AAAA,EAChF;AACA,EAAA,OAAO,SAAA;AACT;;;ACPO,SAAS,cAAc,KAAA,EAA6B;AACzD,EAAA,MAAM,MAAA,GAAS,gBAAgB,KAAK,CAAA;AACpC,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AACA,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,WAAW,2BAAA,CAA4B,MAAA,CAAO,KAAK,CAAA,EAAE;AAC1E","file":"chunk-DMUWIPJR.js","sourcesContent":["import { RENAVAM_LENGTH, RENAVAM_NUMERIC_PATTERN } from './constants.js';\n\n/**\n * Official system format — 11 contiguous digits (BR-RENAVAM-005).\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/arquivos-senatran/portarias/2013/portaria0272013.pdf\n */\nexport function applyRenavamCanonicalFormat(canonical: string): string {\n if (!RENAVAM_NUMERIC_PATTERN.test(canonical)) {\n throw new Error(`RENAVAM must have exactly ${RENAVAM_LENGTH} digits to format`);\n }\n return canonical;\n}\n","import { applyRenavamCanonicalFormat } from '../core/renavam/mask.js';\nimport { validateRenavam } from '../core/renavam/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatRenavam(input: string): FormatResult {\n const result = validateRenavam(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyRenavamCanonicalFormat(result.value) };\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { brandRg } from './chunk-
|
|
1
|
+
import { brandRg } from './chunk-EMZCVV5Y.js';
|
|
2
2
|
|
|
3
3
|
// src/core/rg/constants.ts
|
|
4
4
|
var RG_OFFICIAL_SOURCE_URL = "http://ghiorzi.org/DVnew.htm";
|
|
@@ -394,5 +394,5 @@ function formatRg(input, options) {
|
|
|
394
394
|
}
|
|
395
395
|
|
|
396
396
|
export { RG_MG_GOLDEN, RG_MG_GOLDEN_MASKED, RG_MG_GOLDEN_PREFIXED, RG_OFFICIAL_SOURCE_URL, RG_OFFICIAL_SOURCE_URLS, RG_PR_GOLDEN, RG_RJ_GOLDEN, RG_RJ_GOLDEN_MASKED, RG_RS_GOLDEN, RG_SC_GOLDEN, RG_SP_GOLDEN, RG_SP_GOLDEN_MASKED, RG_SP_GOLDEN_X, RG_SP_GOLDEN_X_MASKED, RG_SUPPORTED_UFS, RG_UF_RULES, computeRgMod10AlternatingCheckDigit, computeRgSpCheckDigit, formatRg, getRgOfficialSourceUrl, getRgUfRules, getRgUfSupport, isValidRg, stripRg, validateRg, validateRgMg, validateRgPr, validateRgRj, validateRgRs, validateRgSc, validateRgSp };
|
|
397
|
-
//# sourceMappingURL=chunk-
|
|
398
|
-
//# sourceMappingURL=chunk-
|
|
397
|
+
//# sourceMappingURL=chunk-E2BVDZKJ.js.map
|
|
398
|
+
//# sourceMappingURL=chunk-E2BVDZKJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/rg/constants.ts","../src/core/rg/modulo-rg.ts","../src/core/rg/rg-common.ts","../src/core/rg/mg.ts","../src/core/rg/pr.ts","../src/core/rg/rj.ts","../src/core/rg/rs.ts","../src/core/rg/sc.ts","../src/core/rg/sp.ts","../src/core/rg/mask.ts","../src/core/rg/index.ts"],"names":["UF","RULES"],"mappings":"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","file":"chunk-G557DGIX.js","sourcesContent":["/**\n * RG (Registro Geral) — per-UF rules (phase 1: SP, RJ, MG, RS, PR, SC).\n * @see http://ghiorzi.org/DVnew.htm — SSP-SP, IFP-RJ, MaSP-MG check digits\n */\nimport type { RgUfCode } from '../../types/validation-result.js';\nimport type { RgUfRules } from './types.js';\n\nexport const RG_OFFICIAL_SOURCE_URL = 'http://ghiorzi.org/DVnew.htm';\n\nexport const RG_OFFICIAL_SOURCE_URLS: Record<RgUfCode, string> = {\n SP: 'http://ghiorzi.org/DVnew.htm',\n RJ: 'http://ghiorzi.org/DVnew.htm',\n MG: 'http://ghiorzi.org/DVnew.htm',\n PR: 'https://www.iipar.pr.gov.br/',\n RS: 'https://www.estado.rs.gov.br/',\n SC: 'https://www.ciasc.sc.gov.br/',\n};\n\nexport const RG_SUPPORTED_UFS = ['SP', 'RJ', 'MG', 'PR', 'RS', 'SC'] as const satisfies readonly RgUfCode[];\n\nexport const RG_SP_GOLDEN = '120300011';\nexport const RG_SP_GOLDEN_MASKED = '12.030.001-1';\nexport const RG_SP_GOLDEN_X = '00000005X';\nexport const RG_SP_GOLDEN_X_MASKED = '00.000.005-X';\n\nexport const RG_RJ_GOLDEN = '27998111';\nexport const RG_RJ_GOLDEN_MASKED = '2.799.811-1';\n\nexport const RG_MG_GOLDEN = '27998111';\nexport const RG_MG_GOLDEN_MASKED = '2.799.811-1';\nexport const RG_MG_GOLDEN_PREFIXED = 'M27998111';\n\nexport const RG_PR_GOLDEN = '12345678';\n\nexport const RG_RS_GOLDEN = '1234567890';\n\nexport const RG_SC_GOLDEN = '123456789';\n\nexport const RG_UF_RULES: Record<RgUfCode, RgUfRules> = {\n SP: {\n uf: 'SP',\n canonicalLength: 9,\n baseLength: 8,\n dvAlgorithm: 'mod11-remainder',\n allowsCheckDigitX: true,\n supportsMask: true,\n },\n RJ: {\n uf: 'RJ',\n canonicalLength: 8,\n baseLength: 7,\n dvAlgorithm: 'mod10-alternating',\n allowsCheckDigitX: false,\n supportsMask: true,\n },\n MG: {\n uf: 'MG',\n canonicalLength: 8,\n baseLength: 7,\n dvAlgorithm: 'mod10-alternating',\n allowsCheckDigitX: false,\n allowsLetterPrefix: 'M',\n supportsMask: true,\n },\n PR: {\n uf: 'PR',\n canonicalLength: 8,\n baseLength: 8,\n dvAlgorithm: 'format-only',\n allowsCheckDigitX: false,\n supportsMask: false,\n },\n RS: {\n uf: 'RS',\n canonicalLength: 10,\n baseLength: 10,\n dvAlgorithm: 'format-only',\n allowsCheckDigitX: false,\n supportsMask: false,\n },\n SC: {\n uf: 'SC',\n canonicalLength: 9,\n baseLength: 9,\n dvAlgorithm: 'format-only',\n allowsCheckDigitX: false,\n supportsMask: true,\n },\n};\n","/**\n * RG check-digit helpers — Ghiorzi DV reference (SSP-SP, IFP-RJ, MaSP-MG).\n * @see http://ghiorzi.org/DVnew.htm\n */\n\nconst SP_WEIGHTS = [9, 8, 7, 6, 5, 4, 3, 2] as const;\n\n/** SSP-SP: remainder mod 11; 10 → X. */\nexport function computeRgSpCheckDigit(base8: string): string {\n let sum = 0;\n for (let i = 0; i < SP_WEIGHTS.length; i++) {\n sum += Number(base8.charAt(i)) * SP_WEIGHTS[i];\n }\n const remainder = sum % 11;\n return remainder === 10 ? 'X' : String(remainder);\n}\n\nfunction reduceMod10Digit(product: number): number {\n if (product > 9) {\n return Math.floor(product / 10) + (product % 10);\n }\n return product;\n}\n\n/** IFP-RJ / MaSP-MG: alternating 2,1 from unit with noves fora; complement to 10. */\nexport function computeRgMod10AlternatingCheckDigit(base: string): string {\n let sum = 0;\n for (let i = base.length - 1, position = 0; i >= 0; i--, position++) {\n const weight = position % 2 === 0 ? 2 : 1;\n sum += reduceMod10Digit(Number(base.charAt(i)) * weight);\n }\n const digit = (10 - (sum % 10)) % 10;\n return String(digit);\n}\n","import type { DocumentFormat } from '../../types/validation-result.js';\nimport { brandRg } from '../../types/validation-result.js';\nimport type { RgUfCode } from '../../types/validation-result.js';\nimport type { RgValidationResult } from './types.js';\n\nexport type RgFailedResult = Extract<RgValidationResult, { ok: false }>;\n\nexport function rgFailure(uf: RgUfCode, code: RgFailedResult['code'], message: string): RgFailedResult {\n return { ok: false, code, message, uf };\n}\n\nexport function rgSuccess(\n canonical: string,\n uf: RgUfCode,\n format: DocumentFormat,\n checkDigitValidated: boolean,\n): Extract<RgValidationResult, { ok: true }> {\n return {\n ok: true,\n value: brandRg(canonical),\n uf,\n format,\n checkDigitValidated,\n };\n}\n\nexport function checkRgTrimmedEmpty(trimmed: string, uf: RgUfCode): RgFailedResult | null {\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'RG input is empty', uf };\n }\n return null;\n}\n\nexport function normalizeRgCheckDigit(digit: string): string {\n return digit.toUpperCase();\n}\n\nexport function matchesRgCheckDigit(expected: string, actual: string): boolean {\n return normalizeRgCheckDigit(expected) === normalizeRgCheckDigit(actual);\n}\n","/**\n * Minas Gerais RG — MaSP modulo 10 alternating (Ghiorzi); optional M prefix.\n */\nimport { RG_UF_RULES } from './constants.js';\nimport { computeRgMod10AlternatingCheckDigit } from './modulo-rg.js';\nimport { checkRgTrimmedEmpty, rgFailure, rgSuccess } from './rg-common.js';\nimport type { RgValidationResult } from './types.js';\n\nconst UF = 'MG' as const;\nconst RULES = RG_UF_RULES.MG;\nconst MG_CHAR_PATTERN = /^[Mm0-9.\\-\\s]+$/;\n\nexport function stripRgMg(input: string): string {\n const withoutSeparators = input.replace(/[.\\-\\s]/g, '');\n const upper = withoutSeparators.toUpperCase();\n if (upper.startsWith('M')) {\n return `M${upper.slice(1).replace(/\\D/g, '')}`;\n }\n return upper.replace(/\\D/g, '');\n}\n\nexport function validateRgMg(input: string): RgValidationResult {\n const trimmed = input.trim();\n const empty = checkRgTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n if (!MG_CHAR_PATTERN.test(trimmed)) {\n return rgFailure(UF, 'INVALID_CHARACTER', 'MG RG contains invalid characters');\n }\n\n const hasPrefix = /^[Mm]/.test(trimmed.replace(/[.\\-\\s]/g, ''));\n const stripped = stripRgMg(trimmed);\n const digits = hasPrefix ? stripped.slice(1) : stripped;\n if (digits.length !== RULES.canonicalLength) {\n return rgFailure(\n UF,\n 'INVALID_LENGTH',\n `MG RG must have ${RULES.canonicalLength} digits after normalization`,\n );\n }\n\n const base = digits.slice(0, RULES.baseLength);\n const expected = computeRgMod10AlternatingCheckDigit(base);\n if (digits.charAt(RULES.baseLength) !== expected) {\n return rgFailure(UF, 'INVALID_CHECK_DIGIT', 'MG RG check digit is invalid');\n }\n\n const branded = hasPrefix ? `M${digits}` : digits;\n return rgSuccess(branded, UF, 'rg', true);\n}\n","/**\n * Paraná RG — format-only (8 digits, no published DV algorithm).\n * @see https://www.iipar.pr.gov.br/\n */\nimport { RG_UF_RULES } from './constants.js';\nimport { checkRgTrimmedEmpty, rgFailure, rgSuccess } from './rg-common.js';\nimport type { RgValidationResult } from './types.js';\n\nconst UF = 'PR' as const;\nconst RULES = RG_UF_RULES.PR;\n\nexport function stripRgPr(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function validateRgPr(input: string): RgValidationResult {\n const trimmed = input.trim();\n const empty = checkRgTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n if (!/^[0-9.\\-\\s]+$/.test(trimmed)) {\n return rgFailure(UF, 'INVALID_CHARACTER', 'PR RG contains invalid characters');\n }\n\n const canonical = stripRgPr(trimmed);\n if (canonical.length !== RULES.canonicalLength) {\n return rgFailure(\n UF,\n 'INVALID_LENGTH',\n `PR RG must have ${RULES.canonicalLength} digits after normalization`,\n );\n }\n\n return rgSuccess(canonical, UF, 'rg', false);\n}\n","/**\n * Rio de Janeiro RG — IFP-RJ modulo 10 alternating (Ghiorzi).\n */\nimport { RG_UF_RULES } from './constants.js';\nimport { computeRgMod10AlternatingCheckDigit } from './modulo-rg.js';\nimport { checkRgTrimmedEmpty, rgFailure, rgSuccess } from './rg-common.js';\nimport type { RgValidationResult } from './types.js';\n\nconst UF = 'RJ' as const;\nconst RULES = RG_UF_RULES.RJ;\n\nexport function stripRgRj(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function validateRgRj(input: string): RgValidationResult {\n const trimmed = input.trim();\n const empty = checkRgTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n if (!/^[0-9.\\-\\s]+$/.test(trimmed)) {\n return rgFailure(UF, 'INVALID_CHARACTER', 'RJ RG contains invalid characters');\n }\n\n const canonical = stripRgRj(trimmed);\n if (canonical.length !== RULES.canonicalLength) {\n return rgFailure(\n UF,\n 'INVALID_LENGTH',\n `RJ RG must have ${RULES.canonicalLength} digits after normalization`,\n );\n }\n\n const base = canonical.slice(0, RULES.baseLength);\n const expected = computeRgMod10AlternatingCheckDigit(base);\n if (canonical.charAt(RULES.baseLength) !== expected) {\n return rgFailure(UF, 'INVALID_CHECK_DIGIT', 'RJ RG check digit is invalid');\n }\n\n return rgSuccess(canonical, UF, 'rg', true);\n}\n","/**\n * Rio Grande do Sul RG — format-only (10 digits, IGP-RS).\n * @see https://www.estado.rs.gov.br/\n */\nimport { RG_UF_RULES } from './constants.js';\nimport { checkRgTrimmedEmpty, rgFailure, rgSuccess } from './rg-common.js';\nimport type { RgValidationResult } from './types.js';\n\nconst UF = 'RS' as const;\nconst RULES = RG_UF_RULES.RS;\n\nexport function stripRgRs(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function validateRgRs(input: string): RgValidationResult {\n const trimmed = input.trim();\n const empty = checkRgTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n if (!/^[0-9.\\-\\s/]+$/.test(trimmed)) {\n return rgFailure(UF, 'INVALID_CHARACTER', 'RS RG contains invalid characters');\n }\n\n const canonical = stripRgRs(trimmed);\n if (canonical.length !== RULES.canonicalLength) {\n return rgFailure(\n UF,\n 'INVALID_LENGTH',\n `RS RG must have ${RULES.canonicalLength} digits after normalization`,\n );\n }\n\n return rgSuccess(canonical, UF, 'rg', false);\n}\n","/**\n * Santa Catarina RG — format-only (9 digits; legacy SSP-SC numbering).\n * @see https://www.ciasc.sc.gov.br/\n */\nimport { RG_UF_RULES } from './constants.js';\nimport { checkRgTrimmedEmpty, rgFailure, rgSuccess } from './rg-common.js';\nimport type { RgValidationResult } from './types.js';\n\nconst UF = 'SC' as const;\nconst RULES = RG_UF_RULES.SC;\n\nexport function stripRgSc(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function validateRgSc(input: string): RgValidationResult {\n const trimmed = input.trim();\n const empty = checkRgTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n if (!/^[0-9.\\-\\s]+$/.test(trimmed)) {\n return rgFailure(UF, 'INVALID_CHARACTER', 'SC RG contains invalid characters');\n }\n\n const canonical = stripRgSc(trimmed);\n if (canonical.length !== RULES.canonicalLength) {\n return rgFailure(\n UF,\n 'INVALID_LENGTH',\n `SC RG must have ${RULES.canonicalLength} digits after normalization`,\n );\n }\n\n return rgSuccess(canonical, UF, 'rg', false);\n}\n","/**\n * São Paulo RG — SSP-SP modulo 11 (Ghiorzi).\n */\nimport { RG_UF_RULES } from './constants.js';\nimport { computeRgSpCheckDigit } from './modulo-rg.js';\nimport {\n checkRgTrimmedEmpty,\n matchesRgCheckDigit,\n rgFailure,\n rgSuccess,\n} from './rg-common.js';\nimport type { RgValidationResult } from './types.js';\n\nconst UF = 'SP' as const;\nconst RULES = RG_UF_RULES.SP;\nconst SP_CHAR_PATTERN = /^[0-9.\\-\\sXx]+$/;\n\nexport function stripRgSp(input: string): string {\n return input.replace(/[.\\-\\s]/g, '').toUpperCase();\n}\n\nexport function validateRgSp(input: string): RgValidationResult {\n const trimmed = input.trim();\n const empty = checkRgTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n if (!SP_CHAR_PATTERN.test(trimmed)) {\n return rgFailure(UF, 'INVALID_CHARACTER', 'SP RG contains invalid characters');\n }\n\n const canonical = stripRgSp(trimmed);\n if (canonical.length !== RULES.canonicalLength) {\n return rgFailure(\n UF,\n 'INVALID_LENGTH',\n `SP RG must have ${RULES.canonicalLength} characters after normalization`,\n );\n }\n\n const base = canonical.slice(0, RULES.baseLength);\n if (!/^\\d{8}$/.test(base)) {\n return rgFailure(UF, 'INVALID_CHARACTER', 'SP RG base must be 8 digits');\n }\n\n const expected = computeRgSpCheckDigit(base);\n const actual = canonical.charAt(RULES.baseLength);\n if (!matchesRgCheckDigit(expected, actual)) {\n return rgFailure(UF, 'INVALID_CHECK_DIGIT', 'SP RG check digit is invalid');\n }\n\n return rgSuccess(canonical, UF, 'rg', true);\n}\n","import { RG_UF_RULES } from './constants.js';\n\n/** SP / RJ / MG mask: XX.XXX.XXX-X */\nexport function applyRgSpStyleMask(canonical: string): string {\n if (canonical.length !== 9) {\n throw new Error('RG must have 9 characters for SP-style mask');\n }\n return `${canonical.slice(0, 2)}.${canonical.slice(2, 5)}.${canonical.slice(5, 8)}-${canonical.slice(8)}`;\n}\n\n/** RJ / MG (8 digits): X.XXX.XXX-X */\nexport function applyRgRjStyleMask(canonical: string): string {\n if (canonical.length !== 8) {\n throw new Error('RG must have 8 digits for RJ-style mask');\n }\n return `${canonical.charAt(0)}.${canonical.slice(1, 4)}.${canonical.slice(4, 7)}-${canonical.charAt(7)}`;\n}\n\n/** SC mask: XXX.XXX.XXX */\nexport function applyRgScMask(canonical: string): string {\n if (canonical.length !== 9) {\n throw new Error('RG must have 9 digits for SC mask');\n }\n return `${canonical.slice(0, 3)}.${canonical.slice(3, 6)}.${canonical.slice(6)}`;\n}\n\nexport function applyRgMask(canonical: string, uf: keyof typeof RG_UF_RULES): string {\n if (uf === 'SP') {\n return applyRgSpStyleMask(canonical);\n }\n if (uf === 'RJ' || uf === 'MG') {\n const digits = canonical.startsWith('M') ? canonical.slice(1) : canonical;\n const masked = applyRgRjStyleMask(digits);\n return canonical.startsWith('M') ? `M${masked}` : masked;\n }\n if (uf === 'SC') {\n return applyRgScMask(canonical);\n }\n return canonical;\n}\n","/**\n * RG (Registro Geral) validation — per-UF rules (phase 1).\n * @see docs/GLOSSARY.md — RG identidade\n */\nimport type { FormatResult, RgUfCode } from '../../types/validation-result.js';\nimport {\n RG_OFFICIAL_SOURCE_URLS,\n RG_SUPPORTED_UFS,\n RG_UF_RULES,\n} from './constants.js';\nimport { validateRgMg, stripRgMg } from './mg.js';\nimport { applyRgMask } from './mask.js';\nimport { validateRgPr, stripRgPr } from './pr.js';\nimport { validateRgRj, stripRgRj } from './rj.js';\nimport { validateRgRs, stripRgRs } from './rs.js';\nimport { validateRgSc, stripRgSc } from './sc.js';\nimport { validateRgSp, stripRgSp } from './sp.js';\nimport type { RgValidationResult, ValidateRgOptions } from './types.js';\n\nexport {\n RG_MG_GOLDEN,\n RG_MG_GOLDEN_MASKED,\n RG_MG_GOLDEN_PREFIXED,\n RG_OFFICIAL_SOURCE_URL,\n RG_OFFICIAL_SOURCE_URLS,\n RG_PR_GOLDEN,\n RG_RJ_GOLDEN,\n RG_RJ_GOLDEN_MASKED,\n RG_RS_GOLDEN,\n RG_SC_GOLDEN,\n RG_SP_GOLDEN,\n RG_SP_GOLDEN_MASKED,\n RG_SP_GOLDEN_X,\n RG_SP_GOLDEN_X_MASKED,\n RG_SUPPORTED_UFS,\n RG_UF_RULES,\n} from './constants.js';\nexport { computeRgMod10AlternatingCheckDigit, computeRgSpCheckDigit } from './modulo-rg.js';\nexport { stripRgMg, validateRgMg } from './mg.js';\nexport { applyRgMask, applyRgRjStyleMask, applyRgScMask, applyRgSpStyleMask } from './mask.js';\nexport { stripRgPr, validateRgPr } from './pr.js';\nexport { stripRgRj, validateRgRj } from './rj.js';\nexport { stripRgRs, validateRgRs } from './rs.js';\nexport { stripRgSc, validateRgSc } from './sc.js';\nexport { stripRgSp, validateRgSp } from './sp.js';\nexport type { RgDvAlgorithm, RgUfRules, RgValidationResult, ValidateRgOptions } from './types.js';\n\ntype FailedResult = Extract<RgValidationResult, { ok: false }>;\ntype ValidatorFn = (input: string) => RgValidationResult;\ntype StripperFn = (input: string) => string;\n\nconst VALIDATORS: Record<RgUfCode, ValidatorFn> = {\n SP: validateRgSp,\n RJ: validateRgRj,\n MG: validateRgMg,\n PR: validateRgPr,\n RS: validateRgRs,\n SC: validateRgSc,\n};\n\nconst STRIPPERS: Record<RgUfCode, StripperFn> = {\n SP: stripRgSp,\n RJ: stripRgRj,\n MG: stripRgMg,\n PR: stripRgPr,\n RS: stripRgRs,\n SC: stripRgSc,\n};\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message };\n}\n\nfunction isSupportedRgUf(uf: string | undefined): uf is RgUfCode {\n return uf !== undefined && (RG_SUPPORTED_UFS as readonly string[]).includes(uf);\n}\n\nexport function getRgOfficialSourceUrl(uf: RgUfCode): string {\n return RG_OFFICIAL_SOURCE_URLS[uf];\n}\n\nexport function getRgUfSupport(): readonly RgUfCode[] {\n return RG_SUPPORTED_UFS;\n}\n\nexport function getRgUfRules(uf: RgUfCode) {\n return RG_UF_RULES[uf];\n}\n\nexport function stripRg(input: string, options: ValidateRgOptions): string {\n if (!isSupportedRgUf(options.uf)) {\n return input.replace(/\\D/g, '');\n }\n return STRIPPERS[options.uf](input);\n}\n\nexport function isValidRg(input: string, options: ValidateRgOptions): boolean {\n return validateRg(input, options).ok;\n}\n\nexport function validateRg(input: string, options: ValidateRgOptions): RgValidationResult {\n if (!isSupportedRgUf(options.uf)) {\n return failure('UF_NOT_IMPLEMENTED', `UF ${String(options.uf)} is not implemented for RG validation`);\n }\n return VALIDATORS[options.uf](input);\n}\n\nexport function formatRg(input: string, options: ValidateRgOptions): FormatResult {\n const result = validateRg(input, options);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n\n const rules = RG_UF_RULES[options.uf];\n if (!rules.supportsMask) {\n return { ok: true, formatted: result.value };\n }\n\n return { ok: true, formatted: applyRgMask(result.value, options.uf) };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/core/rg/constants.ts","../src/core/rg/modulo-rg.ts","../src/core/rg/rg-common.ts","../src/core/rg/mg.ts","../src/core/rg/pr.ts","../src/core/rg/rj.ts","../src/core/rg/rs.ts","../src/core/rg/sc.ts","../src/core/rg/sp.ts","../src/core/rg/mask.ts","../src/core/rg/index.ts"],"names":["UF","RULES"],"mappings":";;;AAOO,IAAM,sBAAA,GAAyB;AAE/B,IAAM,uBAAA,GAAoD;AAAA,EAC/D,EAAA,EAAI,8BAAA;AAAA,EACJ,EAAA,EAAI,8BAAA;AAAA,EACJ,EAAA,EAAI,8BAAA;AAAA,EACJ,EAAA,EAAI,8BAAA;AAAA,EACJ,EAAA,EAAI,+BAAA;AAAA,EACJ,EAAA,EAAI;AACN;AAEO,IAAM,mBAAmB,CAAC,IAAA,EAAM,MAAM,IAAA,EAAM,IAAA,EAAM,MAAM,IAAI;AAE5D,IAAM,YAAA,GAAe;AACrB,IAAM,mBAAA,GAAsB;AAC5B,IAAM,cAAA,GAAiB;AACvB,IAAM,qBAAA,GAAwB;AAE9B,IAAM,YAAA,GAAe;AACrB,IAAM,mBAAA,GAAsB;AAE5B,IAAM,YAAA,GAAe;AACrB,IAAM,mBAAA,GAAsB;AAC5B,IAAM,qBAAA,GAAwB;AAE9B,IAAM,YAAA,GAAe;AAErB,IAAM,YAAA,GAAe;AAErB,IAAM,YAAA,GAAe;AAErB,IAAM,WAAA,GAA2C;AAAA,EACtD,EAAA,EAAI;AAAA,IACF,EAAA,EAAI,IAAA;AAAA,IACJ,eAAA,EAAiB,CAAA;AAAA,IACjB,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,iBAAA;AAAA,IACb,iBAAA,EAAmB,IAAA;AAAA,IACnB,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,EAAA,EAAI;AAAA,IACF,EAAA,EAAI,IAAA;AAAA,IACJ,eAAA,EAAiB,CAAA;AAAA,IACjB,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,mBAAA;AAAA,IACb,iBAAA,EAAmB,KAAA;AAAA,IACnB,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,EAAA,EAAI;AAAA,IACF,EAAA,EAAI,IAAA;AAAA,IACJ,eAAA,EAAiB,CAAA;AAAA,IACjB,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,mBAAA;AAAA,IACb,iBAAA,EAAmB,KAAA;AAAA,IACnB,kBAAA,EAAoB,GAAA;AAAA,IACpB,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,EAAA,EAAI;AAAA,IACF,EAAA,EAAI,IAAA;AAAA,IACJ,eAAA,EAAiB,CAAA;AAAA,IACjB,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,aAAA;AAAA,IACb,iBAAA,EAAmB,KAAA;AAAA,IACnB,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,EAAA,EAAI;AAAA,IACF,EAAA,EAAI,IAAA;AAAA,IACJ,eAAA,EAAiB,EAAA;AAAA,IACjB,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,aAAA;AAAA,IACb,iBAAA,EAAmB,KAAA;AAAA,IACnB,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,EAAA,EAAI;AAAA,IACF,EAAA,EAAI,IAAA;AAAA,IACJ,eAAA,EAAiB,CAAA;AAAA,IACjB,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,aAAA;AAAA,IACb,iBAAA,EAAmB,KAAA;AAAA,IACnB,YAAA,EAAc;AAAA;AAElB;;;ACnFA,IAAM,UAAA,GAAa,CAAC,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAC,CAAA;AAGnC,SAAS,sBAAsB,KAAA,EAAuB;AAC3D,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,UAAA,CAAW,QAAQ,CAAA,EAAA,EAAK;AAC1C,IAAA,GAAA,IAAO,OAAO,KAAA,CAAM,MAAA,CAAO,CAAC,CAAC,CAAA,GAAI,WAAW,CAAC,CAAA;AAAA,EAC/C;AACA,EAAA,MAAM,YAAY,GAAA,GAAM,EAAA;AACxB,EAAA,OAAO,SAAA,KAAc,EAAA,GAAK,GAAA,GAAM,MAAA,CAAO,SAAS,CAAA;AAClD;AAEA,SAAS,iBAAiB,OAAA,EAAyB;AACjD,EAAA,IAAI,UAAU,CAAA,EAAG;AACf,IAAA,OAAO,IAAA,CAAK,KAAA,CAAM,OAAA,GAAU,EAAE,IAAK,OAAA,GAAU,EAAA;AAAA,EAC/C;AACA,EAAA,OAAO,OAAA;AACT;AAGO,SAAS,oCAAoC,IAAA,EAAsB;AACxE,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,KAAK,MAAA,GAAS,CAAA,EAAG,WAAW,CAAA,EAAG,CAAA,IAAK,CAAA,EAAG,CAAA,EAAA,EAAK,QAAA,EAAA,EAAY;AACnE,IAAA,MAAM,MAAA,GAAS,QAAA,GAAW,CAAA,KAAM,CAAA,GAAI,CAAA,GAAI,CAAA;AACxC,IAAA,GAAA,IAAO,iBAAiB,MAAA,CAAO,IAAA,CAAK,OAAO,CAAC,CAAC,IAAI,MAAM,CAAA;AAAA,EACzD;AACA,EAAA,MAAM,KAAA,GAAA,CAAS,EAAA,GAAM,GAAA,GAAM,EAAA,IAAO,EAAA;AAClC,EAAA,OAAO,OAAO,KAAK,CAAA;AACrB;;;AC1BO,SAAS,SAAA,CAAU,EAAA,EAAc,IAAA,EAA8B,OAAA,EAAiC;AACrG,EAAA,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,IAAA,EAAM,SAAS,EAAA,EAAG;AACxC;AAEO,SAAS,SAAA,CACd,SAAA,EACA,EAAA,EACA,MAAA,EACA,mBAAA,EAC2C;AAC3C,EAAA,OAAO;AAAA,IACL,EAAA,EAAI,IAAA;AAAA,IACJ,KAAA,EAAO,QAAQ,SAAS,CAAA;AAAA,IACxB,EAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACF;AACF;AAEO,SAAS,mBAAA,CAAoB,SAAiB,EAAA,EAAqC;AACxF,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,IAAA,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,MAAM,aAAA,EAAe,OAAA,EAAS,qBAAqB,EAAA,EAAG;AAAA,EAC5E;AACA,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,sBAAsB,KAAA,EAAuB;AAC3D,EAAA,OAAO,MAAM,WAAA,EAAY;AAC3B;AAEO,SAAS,mBAAA,CAAoB,UAAkB,MAAA,EAAyB;AAC7E,EAAA,OAAO,qBAAA,CAAsB,QAAQ,CAAA,KAAM,qBAAA,CAAsB,MAAM,CAAA;AACzE;;;AC/BA,IAAM,EAAA,GAAK,IAAA;AACX,IAAM,QAAQ,WAAA,CAAY,EAAA;AAC1B,IAAM,eAAA,GAAkB,iBAAA;AAEjB,SAAS,UAAU,KAAA,EAAuB;AAC/C,EAAA,MAAM,iBAAA,GAAoB,KAAA,CAAM,OAAA,CAAQ,UAAA,EAAY,EAAE,CAAA;AACtD,EAAA,MAAM,KAAA,GAAQ,kBAAkB,WAAA,EAAY;AAC5C,EAAA,IAAI,KAAA,CAAM,UAAA,CAAW,GAAG,CAAA,EAAG;AACzB,IAAA,OAAO,CAAA,CAAA,EAAI,MAAM,KAAA,CAAM,CAAC,EAAE,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAC,CAAA,CAAA;AAAA,EAC9C;AACA,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAChC;AAEO,SAAS,aAAa,KAAA,EAAmC;AAC9D,EAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAC3B,EAAA,MAAM,KAAA,GAAQ,mBAAA,CAAoB,OAAA,EAAS,EAAE,CAAA;AAC7C,EAAA,IAAI,OAAO,OAAO,KAAA;AAElB,EAAA,IAAI,CAAC,eAAA,CAAgB,IAAA,CAAK,OAAO,CAAA,EAAG;AAClC,IAAA,OAAO,SAAA,CAAU,EAAA,EAAI,mBAAA,EAAqB,mCAAmC,CAAA;AAAA,EAC/E;AAEA,EAAA,MAAM,YAAY,OAAA,CAAQ,IAAA,CAAK,QAAQ,OAAA,CAAQ,UAAA,EAAY,EAAE,CAAC,CAAA;AAC9D,EAAA,MAAM,QAAA,GAAW,UAAU,OAAO,CAAA;AAClC,EAAA,MAAM,MAAA,GAAS,SAAA,GAAY,QAAA,CAAS,KAAA,CAAM,CAAC,CAAA,GAAI,QAAA;AAC/C,EAAA,IAAI,MAAA,CAAO,MAAA,KAAW,KAAA,CAAM,eAAA,EAAiB;AAC3C,IAAA,OAAO,SAAA;AAAA,MACL,EAAA;AAAA,MACA,gBAAA;AAAA,MACA,CAAA,gBAAA,EAAmB,MAAM,eAAe,CAAA,2BAAA;AAAA,KAC1C;AAAA,EACF;AAEA,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,MAAM,UAAU,CAAA;AAC7C,EAAA,MAAM,QAAA,GAAW,oCAAoC,IAAI,CAAA;AACzD,EAAA,IAAI,MAAA,CAAO,MAAA,CAAO,KAAA,CAAM,UAAU,MAAM,QAAA,EAAU;AAChD,IAAA,OAAO,SAAA,CAAU,EAAA,EAAI,qBAAA,EAAuB,8BAA8B,CAAA;AAAA,EAC5E;AAEA,EAAA,MAAM,OAAA,GAAU,SAAA,GAAY,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA,GAAK,MAAA;AAC3C,EAAA,OAAO,SAAA,CAAU,OAAA,EAAS,EAAA,EAAI,IAAA,EAAM,IAAI,CAAA;AAC1C;;;ACzCA,IAAMA,GAAAA,GAAK,IAAA;AACX,IAAMC,SAAQ,WAAA,CAAY,EAAA;AAEnB,SAAS,UAAU,KAAA,EAAuB;AAC/C,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAChC;AAEO,SAAS,aAAa,KAAA,EAAmC;AAC9D,EAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAC3B,EAAA,MAAM,KAAA,GAAQ,mBAAA,CAAoB,OAAA,EAASD,GAAE,CAAA;AAC7C,EAAA,IAAI,OAAO,OAAO,KAAA;AAElB,EAAA,IAAI,CAAC,eAAA,CAAgB,IAAA,CAAK,OAAO,CAAA,EAAG;AAClC,IAAA,OAAO,SAAA,CAAUA,GAAAA,EAAI,mBAAA,EAAqB,mCAAmC,CAAA;AAAA,EAC/E;AAEA,EAAA,MAAM,SAAA,GAAY,UAAU,OAAO,CAAA;AACnC,EAAA,IAAI,SAAA,CAAU,MAAA,KAAWC,MAAAA,CAAM,eAAA,EAAiB;AAC9C,IAAA,OAAO,SAAA;AAAA,MACLD,GAAAA;AAAA,MACA,gBAAA;AAAA,MACA,CAAA,gBAAA,EAAmBC,OAAM,eAAe,CAAA,2BAAA;AAAA,KAC1C;AAAA,EACF;AAEA,EAAA,OAAO,SAAA,CAAU,SAAA,EAAWD,GAAAA,EAAI,IAAA,EAAM,KAAK,CAAA;AAC7C;;;AC1BA,IAAMA,GAAAA,GAAK,IAAA;AACX,IAAMC,SAAQ,WAAA,CAAY,EAAA;AAEnB,SAAS,UAAU,KAAA,EAAuB;AAC/C,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAChC;AAEO,SAAS,aAAa,KAAA,EAAmC;AAC9D,EAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAC3B,EAAA,MAAM,KAAA,GAAQ,mBAAA,CAAoB,OAAA,EAASD,GAAE,CAAA;AAC7C,EAAA,IAAI,OAAO,OAAO,KAAA;AAElB,EAAA,IAAI,CAAC,eAAA,CAAgB,IAAA,CAAK,OAAO,CAAA,EAAG;AAClC,IAAA,OAAO,SAAA,CAAUA,GAAAA,EAAI,mBAAA,EAAqB,mCAAmC,CAAA;AAAA,EAC/E;AAEA,EAAA,MAAM,SAAA,GAAY,UAAU,OAAO,CAAA;AACnC,EAAA,IAAI,SAAA,CAAU,MAAA,KAAWC,MAAAA,CAAM,eAAA,EAAiB;AAC9C,IAAA,OAAO,SAAA;AAAA,MACLD,GAAAA;AAAA,MACA,gBAAA;AAAA,MACA,CAAA,gBAAA,EAAmBC,OAAM,eAAe,CAAA,2BAAA;AAAA,KAC1C;AAAA,EACF;AAEA,EAAA,MAAM,IAAA,GAAO,SAAA,CAAU,KAAA,CAAM,CAAA,EAAGA,OAAM,UAAU,CAAA;AAChD,EAAA,MAAM,QAAA,GAAW,oCAAoC,IAAI,CAAA;AACzD,EAAA,IAAI,SAAA,CAAU,MAAA,CAAOA,MAAAA,CAAM,UAAU,MAAM,QAAA,EAAU;AACnD,IAAA,OAAO,SAAA,CAAUD,GAAAA,EAAI,qBAAA,EAAuB,8BAA8B,CAAA;AAAA,EAC5E;AAEA,EAAA,OAAO,SAAA,CAAU,SAAA,EAAWA,GAAAA,EAAI,IAAA,EAAM,IAAI,CAAA;AAC5C;;;AChCA,IAAMA,GAAAA,GAAK,IAAA;AACX,IAAMC,SAAQ,WAAA,CAAY,EAAA;AAEnB,SAAS,UAAU,KAAA,EAAuB;AAC/C,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAChC;AAEO,SAAS,aAAa,KAAA,EAAmC;AAC9D,EAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAC3B,EAAA,MAAM,KAAA,GAAQ,mBAAA,CAAoB,OAAA,EAASD,GAAE,CAAA;AAC7C,EAAA,IAAI,OAAO,OAAO,KAAA;AAElB,EAAA,IAAI,CAAC,gBAAA,CAAiB,IAAA,CAAK,OAAO,CAAA,EAAG;AACnC,IAAA,OAAO,SAAA,CAAUA,GAAAA,EAAI,mBAAA,EAAqB,mCAAmC,CAAA;AAAA,EAC/E;AAEA,EAAA,MAAM,SAAA,GAAY,UAAU,OAAO,CAAA;AACnC,EAAA,IAAI,SAAA,CAAU,MAAA,KAAWC,MAAAA,CAAM,eAAA,EAAiB;AAC9C,IAAA,OAAO,SAAA;AAAA,MACLD,GAAAA;AAAA,MACA,gBAAA;AAAA,MACA,CAAA,gBAAA,EAAmBC,OAAM,eAAe,CAAA,2BAAA;AAAA,KAC1C;AAAA,EACF;AAEA,EAAA,OAAO,SAAA,CAAU,SAAA,EAAWD,GAAAA,EAAI,IAAA,EAAM,KAAK,CAAA;AAC7C;;;AC1BA,IAAMA,GAAAA,GAAK,IAAA;AACX,IAAMC,SAAQ,WAAA,CAAY,EAAA;AAEnB,SAAS,UAAU,KAAA,EAAuB;AAC/C,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAChC;AAEO,SAAS,aAAa,KAAA,EAAmC;AAC9D,EAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAC3B,EAAA,MAAM,KAAA,GAAQ,mBAAA,CAAoB,OAAA,EAASD,GAAE,CAAA;AAC7C,EAAA,IAAI,OAAO,OAAO,KAAA;AAElB,EAAA,IAAI,CAAC,eAAA,CAAgB,IAAA,CAAK,OAAO,CAAA,EAAG;AAClC,IAAA,OAAO,SAAA,CAAUA,GAAAA,EAAI,mBAAA,EAAqB,mCAAmC,CAAA;AAAA,EAC/E;AAEA,EAAA,MAAM,SAAA,GAAY,UAAU,OAAO,CAAA;AACnC,EAAA,IAAI,SAAA,CAAU,MAAA,KAAWC,MAAAA,CAAM,eAAA,EAAiB;AAC9C,IAAA,OAAO,SAAA;AAAA,MACLD,GAAAA;AAAA,MACA,gBAAA;AAAA,MACA,CAAA,gBAAA,EAAmBC,OAAM,eAAe,CAAA,2BAAA;AAAA,KAC1C;AAAA,EACF;AAEA,EAAA,OAAO,SAAA,CAAU,SAAA,EAAWD,GAAAA,EAAI,IAAA,EAAM,KAAK,CAAA;AAC7C;;;ACrBA,IAAMA,GAAAA,GAAK,IAAA;AACX,IAAMC,SAAQ,WAAA,CAAY,EAAA;AAC1B,IAAM,eAAA,GAAkB,iBAAA;AAEjB,SAAS,UAAU,KAAA,EAAuB;AAC/C,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,UAAA,EAAY,EAAE,EAAE,WAAA,EAAY;AACnD;AAEO,SAAS,aAAa,KAAA,EAAmC;AAC9D,EAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAC3B,EAAA,MAAM,KAAA,GAAQ,mBAAA,CAAoB,OAAA,EAASD,GAAE,CAAA;AAC7C,EAAA,IAAI,OAAO,OAAO,KAAA;AAElB,EAAA,IAAI,CAAC,eAAA,CAAgB,IAAA,CAAK,OAAO,CAAA,EAAG;AAClC,IAAA,OAAO,SAAA,CAAUA,GAAAA,EAAI,mBAAA,EAAqB,mCAAmC,CAAA;AAAA,EAC/E;AAEA,EAAA,MAAM,SAAA,GAAY,UAAU,OAAO,CAAA;AACnC,EAAA,IAAI,SAAA,CAAU,MAAA,KAAWC,MAAAA,CAAM,eAAA,EAAiB;AAC9C,IAAA,OAAO,SAAA;AAAA,MACLD,GAAAA;AAAA,MACA,gBAAA;AAAA,MACA,CAAA,gBAAA,EAAmBC,OAAM,eAAe,CAAA,+BAAA;AAAA,KAC1C;AAAA,EACF;AAEA,EAAA,MAAM,IAAA,GAAO,SAAA,CAAU,KAAA,CAAM,CAAA,EAAGA,OAAM,UAAU,CAAA;AAChD,EAAA,IAAI,CAAC,SAAA,CAAU,IAAA,CAAK,IAAI,CAAA,EAAG;AACzB,IAAA,OAAO,SAAA,CAAUD,GAAAA,EAAI,mBAAA,EAAqB,6BAA6B,CAAA;AAAA,EACzE;AAEA,EAAA,MAAM,QAAA,GAAW,sBAAsB,IAAI,CAAA;AAC3C,EAAA,MAAM,MAAA,GAAS,SAAA,CAAU,MAAA,CAAOC,MAAAA,CAAM,UAAU,CAAA;AAChD,EAAA,IAAI,CAAC,mBAAA,CAAoB,QAAA,EAAU,MAAM,CAAA,EAAG;AAC1C,IAAA,OAAO,SAAA,CAAUD,GAAAA,EAAI,qBAAA,EAAuB,8BAA8B,CAAA;AAAA,EAC5E;AAEA,EAAA,OAAO,SAAA,CAAU,SAAA,EAAWA,GAAAA,EAAI,IAAA,EAAM,IAAI,CAAA;AAC5C;;;AChDO,SAAS,mBAAmB,SAAA,EAA2B;AAC5D,EAAA,IAAI,SAAA,CAAU,WAAW,CAAA,EAAG;AAC1B,IAAA,MAAM,IAAI,MAAM,6CAA6C,CAAA;AAAA,EAC/D;AACA,EAAA,OAAO,CAAA,EAAG,UAAU,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,SAAA,CAAU,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,SAAA,CAAU,MAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,SAAA,CAAU,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AACzG;AAGO,SAAS,mBAAmB,SAAA,EAA2B;AAC5D,EAAA,IAAI,SAAA,CAAU,WAAW,CAAA,EAAG;AAC1B,IAAA,MAAM,IAAI,MAAM,yCAAyC,CAAA;AAAA,EAC3D;AACA,EAAA,OAAO,CAAA,EAAG,UAAU,MAAA,CAAO,CAAC,CAAC,CAAA,CAAA,EAAI,SAAA,CAAU,MAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,SAAA,CAAU,MAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,SAAA,CAAU,MAAA,CAAO,CAAC,CAAC,CAAA,CAAA;AACxG;AAGO,SAAS,cAAc,SAAA,EAA2B;AACvD,EAAA,IAAI,SAAA,CAAU,WAAW,CAAA,EAAG;AAC1B,IAAA,MAAM,IAAI,MAAM,mCAAmC,CAAA;AAAA,EACrD;AACA,EAAA,OAAO,GAAG,SAAA,CAAU,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,SAAA,CAAU,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,SAAA,CAAU,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAChF;AAEO,SAAS,WAAA,CAAY,WAAmB,EAAA,EAAsC;AACnF,EAAA,IAAI,OAAO,IAAA,EAAM;AACf,IAAA,OAAO,mBAAmB,SAAS,CAAA;AAAA,EACrC;AACA,EAAA,IAAI,EAAA,KAAO,IAAA,IAAQ,EAAA,KAAO,IAAA,EAAM;AAC9B,IAAA,MAAM,MAAA,GAAS,UAAU,UAAA,CAAW,GAAG,IAAI,SAAA,CAAU,KAAA,CAAM,CAAC,CAAA,GAAI,SAAA;AAChE,IAAA,MAAM,MAAA,GAAS,mBAAmB,MAAM,CAAA;AACxC,IAAA,OAAO,UAAU,UAAA,CAAW,GAAG,CAAA,GAAI,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA,GAAK,MAAA;AAAA,EACpD;AACA,EAAA,IAAI,OAAO,IAAA,EAAM;AACf,IAAA,OAAO,cAAc,SAAS,CAAA;AAAA,EAChC;AACA,EAAA,OAAO,SAAA;AACT;;;ACYA,IAAM,UAAA,GAA4C;AAAA,EAChD,EAAA,EAAI,YAAA;AAAA,EACJ,EAAA,EAAI,YAAA;AAAA,EACJ,EAAA,EAAI,YAAA;AAAA,EACJ,EAAA,EAAI,YAAA;AAAA,EACJ,EAAA,EAAI,YAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,SAAA,GAA0C;AAAA,EAC9C,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,SAAS,OAAA,CAAQ,MAA4B,OAAA,EAA+B;AAC1E,EAAA,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,IAAA,EAAM,OAAA,EAAQ;AACpC;AAEA,SAAS,gBAAgB,EAAA,EAAwC;AAC/D,EAAA,OAAO,EAAA,KAAO,MAAA,IAAc,gBAAA,CAAuC,QAAA,CAAS,EAAE,CAAA;AAChF;AAEO,SAAS,uBAAuB,EAAA,EAAsB;AAC3D,EAAA,OAAO,wBAAwB,EAAE,CAAA;AACnC;AAEO,SAAS,cAAA,GAAsC;AACpD,EAAA,OAAO,gBAAA;AACT;AAEO,SAAS,aAAa,EAAA,EAAc;AACzC,EAAA,OAAO,YAAY,EAAE,CAAA;AACvB;AAEO,SAAS,OAAA,CAAQ,OAAe,OAAA,EAAoC;AACzE,EAAA,IAAI,CAAC,eAAA,CAAgB,OAAA,CAAQ,EAAE,CAAA,EAAG;AAChC,IAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAAA,EAChC;AACA,EAAA,OAAO,SAAA,CAAU,OAAA,CAAQ,EAAE,CAAA,CAAE,KAAK,CAAA;AACpC;AAEO,SAAS,SAAA,CAAU,OAAe,OAAA,EAAqC;AAC5E,EAAA,OAAO,UAAA,CAAW,KAAA,EAAO,OAAO,CAAA,CAAE,EAAA;AACpC;AAEO,SAAS,UAAA,CAAW,OAAe,OAAA,EAAgD;AACxF,EAAA,IAAI,CAAC,eAAA,CAAgB,OAAA,CAAQ,EAAE,CAAA,EAAG;AAChC,IAAA,OAAO,QAAQ,oBAAA,EAAsB,CAAA,GAAA,EAAM,OAAO,OAAA,CAAQ,EAAE,CAAC,CAAA,qCAAA,CAAuC,CAAA;AAAA,EACtG;AACA,EAAA,OAAO,UAAA,CAAW,OAAA,CAAQ,EAAE,CAAA,CAAE,KAAK,CAAA;AACrC;AAEO,SAAS,QAAA,CAAS,OAAe,OAAA,EAA0C;AAChF,EAAA,MAAM,MAAA,GAAS,UAAA,CAAW,KAAA,EAAO,OAAO,CAAA;AACxC,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AAEA,EAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,OAAA,CAAQ,EAAE,CAAA;AACpC,EAAA,IAAI,CAAC,MAAM,YAAA,EAAc;AACvB,IAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,SAAA,EAAW,OAAO,KAAA,EAAM;AAAA,EAC7C;AAEA,EAAA,OAAO,EAAE,IAAI,IAAA,EAAM,SAAA,EAAW,YAAY,MAAA,CAAO,KAAA,EAAO,OAAA,CAAQ,EAAE,CAAA,EAAE;AACtE","file":"chunk-E2BVDZKJ.js","sourcesContent":["/**\n * RG (Registro Geral) — per-UF rules (phase 1: SP, RJ, MG, RS, PR, SC).\n * @see http://ghiorzi.org/DVnew.htm — SSP-SP, IFP-RJ, MaSP-MG check digits\n */\nimport type { RgUfCode } from '../../types/validation-result.js';\nimport type { RgUfRules } from './types.js';\n\nexport const RG_OFFICIAL_SOURCE_URL = 'http://ghiorzi.org/DVnew.htm';\n\nexport const RG_OFFICIAL_SOURCE_URLS: Record<RgUfCode, string> = {\n SP: 'http://ghiorzi.org/DVnew.htm',\n RJ: 'http://ghiorzi.org/DVnew.htm',\n MG: 'http://ghiorzi.org/DVnew.htm',\n PR: 'https://www.iipar.pr.gov.br/',\n RS: 'https://www.estado.rs.gov.br/',\n SC: 'https://www.ciasc.sc.gov.br/',\n};\n\nexport const RG_SUPPORTED_UFS = ['SP', 'RJ', 'MG', 'PR', 'RS', 'SC'] as const satisfies readonly RgUfCode[];\n\nexport const RG_SP_GOLDEN = '120300011';\nexport const RG_SP_GOLDEN_MASKED = '12.030.001-1';\nexport const RG_SP_GOLDEN_X = '00000005X';\nexport const RG_SP_GOLDEN_X_MASKED = '00.000.005-X';\n\nexport const RG_RJ_GOLDEN = '27998111';\nexport const RG_RJ_GOLDEN_MASKED = '2.799.811-1';\n\nexport const RG_MG_GOLDEN = '27998111';\nexport const RG_MG_GOLDEN_MASKED = '2.799.811-1';\nexport const RG_MG_GOLDEN_PREFIXED = 'M27998111';\n\nexport const RG_PR_GOLDEN = '12345678';\n\nexport const RG_RS_GOLDEN = '1234567890';\n\nexport const RG_SC_GOLDEN = '123456789';\n\nexport const RG_UF_RULES: Record<RgUfCode, RgUfRules> = {\n SP: {\n uf: 'SP',\n canonicalLength: 9,\n baseLength: 8,\n dvAlgorithm: 'mod11-remainder',\n allowsCheckDigitX: true,\n supportsMask: true,\n },\n RJ: {\n uf: 'RJ',\n canonicalLength: 8,\n baseLength: 7,\n dvAlgorithm: 'mod10-alternating',\n allowsCheckDigitX: false,\n supportsMask: true,\n },\n MG: {\n uf: 'MG',\n canonicalLength: 8,\n baseLength: 7,\n dvAlgorithm: 'mod10-alternating',\n allowsCheckDigitX: false,\n allowsLetterPrefix: 'M',\n supportsMask: true,\n },\n PR: {\n uf: 'PR',\n canonicalLength: 8,\n baseLength: 8,\n dvAlgorithm: 'format-only',\n allowsCheckDigitX: false,\n supportsMask: false,\n },\n RS: {\n uf: 'RS',\n canonicalLength: 10,\n baseLength: 10,\n dvAlgorithm: 'format-only',\n allowsCheckDigitX: false,\n supportsMask: false,\n },\n SC: {\n uf: 'SC',\n canonicalLength: 9,\n baseLength: 9,\n dvAlgorithm: 'format-only',\n allowsCheckDigitX: false,\n supportsMask: true,\n },\n};\n","/**\n * RG check-digit helpers — Ghiorzi DV reference (SSP-SP, IFP-RJ, MaSP-MG).\n * @see http://ghiorzi.org/DVnew.htm\n */\n\nconst SP_WEIGHTS = [9, 8, 7, 6, 5, 4, 3, 2] as const;\n\n/** SSP-SP: remainder mod 11; 10 → X. */\nexport function computeRgSpCheckDigit(base8: string): string {\n let sum = 0;\n for (let i = 0; i < SP_WEIGHTS.length; i++) {\n sum += Number(base8.charAt(i)) * SP_WEIGHTS[i];\n }\n const remainder = sum % 11;\n return remainder === 10 ? 'X' : String(remainder);\n}\n\nfunction reduceMod10Digit(product: number): number {\n if (product > 9) {\n return Math.floor(product / 10) + (product % 10);\n }\n return product;\n}\n\n/** IFP-RJ / MaSP-MG: alternating 2,1 from unit with noves fora; complement to 10. */\nexport function computeRgMod10AlternatingCheckDigit(base: string): string {\n let sum = 0;\n for (let i = base.length - 1, position = 0; i >= 0; i--, position++) {\n const weight = position % 2 === 0 ? 2 : 1;\n sum += reduceMod10Digit(Number(base.charAt(i)) * weight);\n }\n const digit = (10 - (sum % 10)) % 10;\n return String(digit);\n}\n","import type { DocumentFormat } from '../../types/validation-result.js';\nimport { brandRg } from '../../types/validation-result.js';\nimport type { RgUfCode } from '../../types/validation-result.js';\nimport type { RgValidationResult } from './types.js';\n\nexport type RgFailedResult = Extract<RgValidationResult, { ok: false }>;\n\nexport function rgFailure(uf: RgUfCode, code: RgFailedResult['code'], message: string): RgFailedResult {\n return { ok: false, code, message, uf };\n}\n\nexport function rgSuccess(\n canonical: string,\n uf: RgUfCode,\n format: DocumentFormat,\n checkDigitValidated: boolean,\n): Extract<RgValidationResult, { ok: true }> {\n return {\n ok: true,\n value: brandRg(canonical),\n uf,\n format,\n checkDigitValidated,\n };\n}\n\nexport function checkRgTrimmedEmpty(trimmed: string, uf: RgUfCode): RgFailedResult | null {\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'RG input is empty', uf };\n }\n return null;\n}\n\nexport function normalizeRgCheckDigit(digit: string): string {\n return digit.toUpperCase();\n}\n\nexport function matchesRgCheckDigit(expected: string, actual: string): boolean {\n return normalizeRgCheckDigit(expected) === normalizeRgCheckDigit(actual);\n}\n","/**\n * Minas Gerais RG — MaSP modulo 10 alternating (Ghiorzi); optional M prefix.\n */\nimport { RG_UF_RULES } from './constants.js';\nimport { computeRgMod10AlternatingCheckDigit } from './modulo-rg.js';\nimport { checkRgTrimmedEmpty, rgFailure, rgSuccess } from './rg-common.js';\nimport type { RgValidationResult } from './types.js';\n\nconst UF = 'MG' as const;\nconst RULES = RG_UF_RULES.MG;\nconst MG_CHAR_PATTERN = /^[Mm0-9.\\-\\s]+$/;\n\nexport function stripRgMg(input: string): string {\n const withoutSeparators = input.replace(/[.\\-\\s]/g, '');\n const upper = withoutSeparators.toUpperCase();\n if (upper.startsWith('M')) {\n return `M${upper.slice(1).replace(/\\D/g, '')}`;\n }\n return upper.replace(/\\D/g, '');\n}\n\nexport function validateRgMg(input: string): RgValidationResult {\n const trimmed = input.trim();\n const empty = checkRgTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n if (!MG_CHAR_PATTERN.test(trimmed)) {\n return rgFailure(UF, 'INVALID_CHARACTER', 'MG RG contains invalid characters');\n }\n\n const hasPrefix = /^[Mm]/.test(trimmed.replace(/[.\\-\\s]/g, ''));\n const stripped = stripRgMg(trimmed);\n const digits = hasPrefix ? stripped.slice(1) : stripped;\n if (digits.length !== RULES.canonicalLength) {\n return rgFailure(\n UF,\n 'INVALID_LENGTH',\n `MG RG must have ${RULES.canonicalLength} digits after normalization`,\n );\n }\n\n const base = digits.slice(0, RULES.baseLength);\n const expected = computeRgMod10AlternatingCheckDigit(base);\n if (digits.charAt(RULES.baseLength) !== expected) {\n return rgFailure(UF, 'INVALID_CHECK_DIGIT', 'MG RG check digit is invalid');\n }\n\n const branded = hasPrefix ? `M${digits}` : digits;\n return rgSuccess(branded, UF, 'rg', true);\n}\n","/**\n * Paraná RG — format-only (8 digits, no published DV algorithm).\n * @see https://www.iipar.pr.gov.br/\n */\nimport { RG_UF_RULES } from './constants.js';\nimport { checkRgTrimmedEmpty, rgFailure, rgSuccess } from './rg-common.js';\nimport type { RgValidationResult } from './types.js';\n\nconst UF = 'PR' as const;\nconst RULES = RG_UF_RULES.PR;\n\nexport function stripRgPr(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function validateRgPr(input: string): RgValidationResult {\n const trimmed = input.trim();\n const empty = checkRgTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n if (!/^[0-9.\\-\\s]+$/.test(trimmed)) {\n return rgFailure(UF, 'INVALID_CHARACTER', 'PR RG contains invalid characters');\n }\n\n const canonical = stripRgPr(trimmed);\n if (canonical.length !== RULES.canonicalLength) {\n return rgFailure(\n UF,\n 'INVALID_LENGTH',\n `PR RG must have ${RULES.canonicalLength} digits after normalization`,\n );\n }\n\n return rgSuccess(canonical, UF, 'rg', false);\n}\n","/**\n * Rio de Janeiro RG — IFP-RJ modulo 10 alternating (Ghiorzi).\n */\nimport { RG_UF_RULES } from './constants.js';\nimport { computeRgMod10AlternatingCheckDigit } from './modulo-rg.js';\nimport { checkRgTrimmedEmpty, rgFailure, rgSuccess } from './rg-common.js';\nimport type { RgValidationResult } from './types.js';\n\nconst UF = 'RJ' as const;\nconst RULES = RG_UF_RULES.RJ;\n\nexport function stripRgRj(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function validateRgRj(input: string): RgValidationResult {\n const trimmed = input.trim();\n const empty = checkRgTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n if (!/^[0-9.\\-\\s]+$/.test(trimmed)) {\n return rgFailure(UF, 'INVALID_CHARACTER', 'RJ RG contains invalid characters');\n }\n\n const canonical = stripRgRj(trimmed);\n if (canonical.length !== RULES.canonicalLength) {\n return rgFailure(\n UF,\n 'INVALID_LENGTH',\n `RJ RG must have ${RULES.canonicalLength} digits after normalization`,\n );\n }\n\n const base = canonical.slice(0, RULES.baseLength);\n const expected = computeRgMod10AlternatingCheckDigit(base);\n if (canonical.charAt(RULES.baseLength) !== expected) {\n return rgFailure(UF, 'INVALID_CHECK_DIGIT', 'RJ RG check digit is invalid');\n }\n\n return rgSuccess(canonical, UF, 'rg', true);\n}\n","/**\n * Rio Grande do Sul RG — format-only (10 digits, IGP-RS).\n * @see https://www.estado.rs.gov.br/\n */\nimport { RG_UF_RULES } from './constants.js';\nimport { checkRgTrimmedEmpty, rgFailure, rgSuccess } from './rg-common.js';\nimport type { RgValidationResult } from './types.js';\n\nconst UF = 'RS' as const;\nconst RULES = RG_UF_RULES.RS;\n\nexport function stripRgRs(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function validateRgRs(input: string): RgValidationResult {\n const trimmed = input.trim();\n const empty = checkRgTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n if (!/^[0-9.\\-\\s/]+$/.test(trimmed)) {\n return rgFailure(UF, 'INVALID_CHARACTER', 'RS RG contains invalid characters');\n }\n\n const canonical = stripRgRs(trimmed);\n if (canonical.length !== RULES.canonicalLength) {\n return rgFailure(\n UF,\n 'INVALID_LENGTH',\n `RS RG must have ${RULES.canonicalLength} digits after normalization`,\n );\n }\n\n return rgSuccess(canonical, UF, 'rg', false);\n}\n","/**\n * Santa Catarina RG — format-only (9 digits; legacy SSP-SC numbering).\n * @see https://www.ciasc.sc.gov.br/\n */\nimport { RG_UF_RULES } from './constants.js';\nimport { checkRgTrimmedEmpty, rgFailure, rgSuccess } from './rg-common.js';\nimport type { RgValidationResult } from './types.js';\n\nconst UF = 'SC' as const;\nconst RULES = RG_UF_RULES.SC;\n\nexport function stripRgSc(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function validateRgSc(input: string): RgValidationResult {\n const trimmed = input.trim();\n const empty = checkRgTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n if (!/^[0-9.\\-\\s]+$/.test(trimmed)) {\n return rgFailure(UF, 'INVALID_CHARACTER', 'SC RG contains invalid characters');\n }\n\n const canonical = stripRgSc(trimmed);\n if (canonical.length !== RULES.canonicalLength) {\n return rgFailure(\n UF,\n 'INVALID_LENGTH',\n `SC RG must have ${RULES.canonicalLength} digits after normalization`,\n );\n }\n\n return rgSuccess(canonical, UF, 'rg', false);\n}\n","/**\n * São Paulo RG — SSP-SP modulo 11 (Ghiorzi).\n */\nimport { RG_UF_RULES } from './constants.js';\nimport { computeRgSpCheckDigit } from './modulo-rg.js';\nimport {\n checkRgTrimmedEmpty,\n matchesRgCheckDigit,\n rgFailure,\n rgSuccess,\n} from './rg-common.js';\nimport type { RgValidationResult } from './types.js';\n\nconst UF = 'SP' as const;\nconst RULES = RG_UF_RULES.SP;\nconst SP_CHAR_PATTERN = /^[0-9.\\-\\sXx]+$/;\n\nexport function stripRgSp(input: string): string {\n return input.replace(/[.\\-\\s]/g, '').toUpperCase();\n}\n\nexport function validateRgSp(input: string): RgValidationResult {\n const trimmed = input.trim();\n const empty = checkRgTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n if (!SP_CHAR_PATTERN.test(trimmed)) {\n return rgFailure(UF, 'INVALID_CHARACTER', 'SP RG contains invalid characters');\n }\n\n const canonical = stripRgSp(trimmed);\n if (canonical.length !== RULES.canonicalLength) {\n return rgFailure(\n UF,\n 'INVALID_LENGTH',\n `SP RG must have ${RULES.canonicalLength} characters after normalization`,\n );\n }\n\n const base = canonical.slice(0, RULES.baseLength);\n if (!/^\\d{8}$/.test(base)) {\n return rgFailure(UF, 'INVALID_CHARACTER', 'SP RG base must be 8 digits');\n }\n\n const expected = computeRgSpCheckDigit(base);\n const actual = canonical.charAt(RULES.baseLength);\n if (!matchesRgCheckDigit(expected, actual)) {\n return rgFailure(UF, 'INVALID_CHECK_DIGIT', 'SP RG check digit is invalid');\n }\n\n return rgSuccess(canonical, UF, 'rg', true);\n}\n","import { RG_UF_RULES } from './constants.js';\n\n/** SP / RJ / MG mask: XX.XXX.XXX-X */\nexport function applyRgSpStyleMask(canonical: string): string {\n if (canonical.length !== 9) {\n throw new Error('RG must have 9 characters for SP-style mask');\n }\n return `${canonical.slice(0, 2)}.${canonical.slice(2, 5)}.${canonical.slice(5, 8)}-${canonical.slice(8)}`;\n}\n\n/** RJ / MG (8 digits): X.XXX.XXX-X */\nexport function applyRgRjStyleMask(canonical: string): string {\n if (canonical.length !== 8) {\n throw new Error('RG must have 8 digits for RJ-style mask');\n }\n return `${canonical.charAt(0)}.${canonical.slice(1, 4)}.${canonical.slice(4, 7)}-${canonical.charAt(7)}`;\n}\n\n/** SC mask: XXX.XXX.XXX */\nexport function applyRgScMask(canonical: string): string {\n if (canonical.length !== 9) {\n throw new Error('RG must have 9 digits for SC mask');\n }\n return `${canonical.slice(0, 3)}.${canonical.slice(3, 6)}.${canonical.slice(6)}`;\n}\n\nexport function applyRgMask(canonical: string, uf: keyof typeof RG_UF_RULES): string {\n if (uf === 'SP') {\n return applyRgSpStyleMask(canonical);\n }\n if (uf === 'RJ' || uf === 'MG') {\n const digits = canonical.startsWith('M') ? canonical.slice(1) : canonical;\n const masked = applyRgRjStyleMask(digits);\n return canonical.startsWith('M') ? `M${masked}` : masked;\n }\n if (uf === 'SC') {\n return applyRgScMask(canonical);\n }\n return canonical;\n}\n","/**\n * RG (Registro Geral) validation — per-UF rules (phase 1).\n * @see docs/GLOSSARY.md — RG identidade\n */\nimport type { FormatResult, RgUfCode } from '../../types/validation-result.js';\nimport {\n RG_OFFICIAL_SOURCE_URLS,\n RG_SUPPORTED_UFS,\n RG_UF_RULES,\n} from './constants.js';\nimport { validateRgMg, stripRgMg } from './mg.js';\nimport { applyRgMask } from './mask.js';\nimport { validateRgPr, stripRgPr } from './pr.js';\nimport { validateRgRj, stripRgRj } from './rj.js';\nimport { validateRgRs, stripRgRs } from './rs.js';\nimport { validateRgSc, stripRgSc } from './sc.js';\nimport { validateRgSp, stripRgSp } from './sp.js';\nimport type { RgValidationResult, ValidateRgOptions } from './types.js';\n\nexport {\n RG_MG_GOLDEN,\n RG_MG_GOLDEN_MASKED,\n RG_MG_GOLDEN_PREFIXED,\n RG_OFFICIAL_SOURCE_URL,\n RG_OFFICIAL_SOURCE_URLS,\n RG_PR_GOLDEN,\n RG_RJ_GOLDEN,\n RG_RJ_GOLDEN_MASKED,\n RG_RS_GOLDEN,\n RG_SC_GOLDEN,\n RG_SP_GOLDEN,\n RG_SP_GOLDEN_MASKED,\n RG_SP_GOLDEN_X,\n RG_SP_GOLDEN_X_MASKED,\n RG_SUPPORTED_UFS,\n RG_UF_RULES,\n} from './constants.js';\nexport { computeRgMod10AlternatingCheckDigit, computeRgSpCheckDigit } from './modulo-rg.js';\nexport { stripRgMg, validateRgMg } from './mg.js';\nexport { applyRgMask, applyRgRjStyleMask, applyRgScMask, applyRgSpStyleMask } from './mask.js';\nexport { stripRgPr, validateRgPr } from './pr.js';\nexport { stripRgRj, validateRgRj } from './rj.js';\nexport { stripRgRs, validateRgRs } from './rs.js';\nexport { stripRgSc, validateRgSc } from './sc.js';\nexport { stripRgSp, validateRgSp } from './sp.js';\nexport type { RgDvAlgorithm, RgUfRules, RgValidationResult, ValidateRgOptions } from './types.js';\n\ntype FailedResult = Extract<RgValidationResult, { ok: false }>;\ntype ValidatorFn = (input: string) => RgValidationResult;\ntype StripperFn = (input: string) => string;\n\nconst VALIDATORS: Record<RgUfCode, ValidatorFn> = {\n SP: validateRgSp,\n RJ: validateRgRj,\n MG: validateRgMg,\n PR: validateRgPr,\n RS: validateRgRs,\n SC: validateRgSc,\n};\n\nconst STRIPPERS: Record<RgUfCode, StripperFn> = {\n SP: stripRgSp,\n RJ: stripRgRj,\n MG: stripRgMg,\n PR: stripRgPr,\n RS: stripRgRs,\n SC: stripRgSc,\n};\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message };\n}\n\nfunction isSupportedRgUf(uf: string | undefined): uf is RgUfCode {\n return uf !== undefined && (RG_SUPPORTED_UFS as readonly string[]).includes(uf);\n}\n\nexport function getRgOfficialSourceUrl(uf: RgUfCode): string {\n return RG_OFFICIAL_SOURCE_URLS[uf];\n}\n\nexport function getRgUfSupport(): readonly RgUfCode[] {\n return RG_SUPPORTED_UFS;\n}\n\nexport function getRgUfRules(uf: RgUfCode) {\n return RG_UF_RULES[uf];\n}\n\nexport function stripRg(input: string, options: ValidateRgOptions): string {\n if (!isSupportedRgUf(options.uf)) {\n return input.replace(/\\D/g, '');\n }\n return STRIPPERS[options.uf](input);\n}\n\nexport function isValidRg(input: string, options: ValidateRgOptions): boolean {\n return validateRg(input, options).ok;\n}\n\nexport function validateRg(input: string, options: ValidateRgOptions): RgValidationResult {\n if (!isSupportedRgUf(options.uf)) {\n return failure('UF_NOT_IMPLEMENTED', `UF ${String(options.uf)} is not implemented for RG validation`);\n }\n return VALIDATORS[options.uf](input);\n}\n\nexport function formatRg(input: string, options: ValidateRgOptions): FormatResult {\n const result = validateRg(input, options);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n\n const rules = RG_UF_RULES[options.uf];\n if (!rules.supportsMask) {\n return { ok: true, formatted: result.value };\n }\n\n return { ok: true, formatted: applyRgMask(result.value, options.uf) };\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { validateCep, CEP_MASK_PATTERN } from './chunk-
|
|
1
|
+
import { validateCep, CEP_MASK_PATTERN } from './chunk-UANHHEWY.js';
|
|
2
2
|
|
|
3
3
|
// src/core/cep/mask.ts
|
|
4
4
|
function applyCepMask(canonical) {
|
|
@@ -19,5 +19,5 @@ function formatCep(input) {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
export { formatCep };
|
|
22
|
-
//# sourceMappingURL=chunk-
|
|
23
|
-
//# sourceMappingURL=chunk-
|
|
22
|
+
//# sourceMappingURL=chunk-EDJC6HIP.js.map
|
|
23
|
+
//# sourceMappingURL=chunk-EDJC6HIP.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/cep/mask.ts","../src/format/cep.ts"],"names":[],"mappings":";;;AAGO,SAAS,aAAa,SAAA,EAA2B;AACtD,EAAA,MAAM,KAAA,GAAQ,gBAAA,CAAiB,IAAA,CAAK,SAAS,CAAA;AAC7C,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,MAAM,8CAA8C,CAAA;AAAA,EAChE;AACA,EAAA,OAAO,GAAG,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA,EAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAChC;;;ACLO,SAAS,UAAU,KAAA,EAA6B;AACrD,EAAA,MAAM,MAAA,GAAS,YAAY,KAAK,CAAA;AAChC,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AACA,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,WAAW,YAAA,CAAa,MAAA,CAAO,KAAK,CAAA,EAAE;AAC3D","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/core/cep/mask.ts","../src/format/cep.ts"],"names":[],"mappings":";;;AAGO,SAAS,aAAa,SAAA,EAA2B;AACtD,EAAA,MAAM,KAAA,GAAQ,gBAAA,CAAiB,IAAA,CAAK,SAAS,CAAA;AAC7C,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,MAAM,8CAA8C,CAAA;AAAA,EAChE;AACA,EAAA,OAAO,GAAG,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA,EAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAChC;;;ACLO,SAAS,UAAU,KAAA,EAA6B;AACrD,EAAA,MAAM,MAAA,GAAS,YAAY,KAAK,CAAA;AAChC,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AACA,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,WAAW,YAAA,CAAa,MAAA,CAAO,KAAK,CAAA,EAAE;AAC3D","file":"chunk-EDJC6HIP.js","sourcesContent":["import { CEP_MASK_PATTERN } from './constants.js';\n\n/** Mask XXXXX-XXX (BR-CEP-004). */\nexport function applyCepMask(canonical: string): string {\n const match = CEP_MASK_PATTERN.exec(canonical);\n if (!match) {\n throw new Error('CEP must have exactly 8 digits to apply mask');\n }\n return `${match[1]}-${match[2]}`;\n}\n","import { applyCepMask } from '../core/cep/mask.js';\nimport { validateCep } from '../core/cep/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatCep(input: string): FormatResult {\n const result = validateCep(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyCepMask(result.value) };\n}\n"]}
|
|
@@ -29,6 +29,9 @@ function brandPlaca(value) {
|
|
|
29
29
|
function brandPisPasep(value) {
|
|
30
30
|
return value;
|
|
31
31
|
}
|
|
32
|
+
function brandNit(value) {
|
|
33
|
+
return value;
|
|
34
|
+
}
|
|
32
35
|
function brandPixKey(value) {
|
|
33
36
|
return value;
|
|
34
37
|
}
|
|
@@ -41,6 +44,9 @@ function brandCodigoBarras(value) {
|
|
|
41
44
|
function brandCartaoCredito(value) {
|
|
42
45
|
return value;
|
|
43
46
|
}
|
|
47
|
+
function brandEan(value) {
|
|
48
|
+
return value;
|
|
49
|
+
}
|
|
44
50
|
function brandInscricaoEstadual(value) {
|
|
45
51
|
return value;
|
|
46
52
|
}
|
|
@@ -57,6 +63,6 @@ function brandBrCodePayload(value) {
|
|
|
57
63
|
return value;
|
|
58
64
|
}
|
|
59
65
|
|
|
60
|
-
export { brandBrCodePayload, brandCartaoCredito, brandCep, brandCnh, brandCnpj, brandCodigoBarras, brandCpf, brandInscricaoEstadual, brandInscricaoEstadualProdutorRural, brandLinhaDigitavel, brandNfeChave, brandPisPasep, brandPixKey, brandPlaca, brandProcessoJudicial, brandRenavam, brandRg, brandTelefone, brandTituloEleitor };
|
|
61
|
-
//# sourceMappingURL=chunk-
|
|
62
|
-
//# sourceMappingURL=chunk-
|
|
66
|
+
export { brandBrCodePayload, brandCartaoCredito, brandCep, brandCnh, brandCnpj, brandCodigoBarras, brandCpf, brandEan, brandInscricaoEstadual, brandInscricaoEstadualProdutorRural, brandLinhaDigitavel, brandNfeChave, brandNit, brandPisPasep, brandPixKey, brandPlaca, brandProcessoJudicial, brandRenavam, brandRg, brandTelefone, brandTituloEleitor };
|
|
67
|
+
//# sourceMappingURL=chunk-EMZCVV5Y.js.map
|
|
68
|
+
//# sourceMappingURL=chunk-EMZCVV5Y.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/validation-result.ts"],"names":[],"mappings":";AA2LO,SAAS,UAAU,KAAA,EAAqB;AAC7C,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,SAAS,KAAA,EAAoB;AAC3C,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,SAAS,KAAA,EAAoB;AAC3C,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,aAAa,KAAA,EAAwB;AACnD,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,mBAAmB,KAAA,EAA8B;AAC/D,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,cAAc,KAAA,EAAyB;AACrD,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,sBAAsB,KAAA,EAAiC;AACrE,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,SAAS,KAAA,EAAoB;AAC3C,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,WAAW,KAAA,EAAsB;AAC/C,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,cAAc,KAAA,EAAyB;AACrD,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,SAAS,KAAA,EAAoB;AAC3C,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,YAAY,KAAA,EAAuB;AACjD,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,oBAAoB,KAAA,EAA+B;AACjE,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,kBAAkB,KAAA,EAA6B;AAC7D,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,mBAAmB,KAAA,EAA8B;AAC/D,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,SAAS,KAAA,EAAoB;AAC3C,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,uBAAuB,KAAA,EAAkC;AACvE,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,oCAAoC,KAAA,EAA+C;AACjG,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,QAAQ,KAAA,EAAmB;AACzC,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,cAAc,KAAA,EAAyB;AACrD,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,mBAAmB,KAAA,EAA8B;AAC/D,EAAA,OAAO,KAAA;AACT","file":"chunk-EMZCVV5Y.js","sourcesContent":["export type DocumentFormat =\n | 'numeric'\n | 'alphanumeric'\n | 'legacy'\n | 'mercosul'\n | 'email'\n | 'phone'\n | 'evp'\n | 'linha-digitavel'\n | 'codigo-barras'\n | 'cartao-credito'\n | 'ean-8'\n | 'ean-13'\n | 'inscricao-estadual'\n | 'inscricao-estadual-produtor-rural'\n | 'telefone'\n | 'brcode'\n | 'arrecadacao'\n | 'rg';\n\nexport type PixKeyType = 'cpf' | 'cnpj' | 'email' | 'phone' | 'evp';\n\nexport type TelefoneTipo = 'celular' | 'fixo';\n\nexport type BoletoInputKind = 'linha-digitavel' | 'codigo-barras' | 'arrecadacao-linha' | 'arrecadacao-codigo-barras';\n\nexport type ValidationErrorCode =\n | 'INVALID_LENGTH'\n | 'INVALID_CHARACTER'\n | 'INVALID_CHECK_DIGIT'\n | 'KNOWN_INVALID_PATTERN'\n | 'UNSUPPORTED_FORMAT'\n | 'EMPTY_INPUT'\n | 'UF_NOT_IMPLEMENTED';\n\nexport type ValidationResult<T extends string = string> =\n | { ok: true; value: T; format: DocumentFormat }\n | { ok: false; code: ValidationErrorCode; message: string };\n\nexport type FormatResult =\n | { ok: true; formatted: string }\n | { ok: false; code: ValidationErrorCode; message: string };\n\nexport type Cnpj = string & { readonly __brand: 'Cnpj' };\nexport type Cpf = string & { readonly __brand: 'Cpf' };\nexport type Cnh = string & { readonly __brand: 'Cnh' };\nexport type Renavam = string & { readonly __brand: 'Renavam' };\nexport type TituloEleitor = string & { readonly __brand: 'TituloEleitor' };\nexport type NfeChave = string & { readonly __brand: 'NfeChave' };\nexport type ProcessoJudicial = string & { readonly __brand: 'ProcessoJudicial' };\nexport type Cep = string & { readonly __brand: 'Cep' };\nexport type Placa = string & { readonly __brand: 'Placa' };\nexport type PisPasep = string & { readonly __brand: 'PisPasep' };\nexport type Nit = string & { readonly __brand: 'Nit' };\n\nexport type NitIssuer = 'inss' | 'caixa';\nexport type NitTipo = 'nit' | 'pis' | 'nis';\n\nexport type NitValidationResult =\n | { ok: true; value: Nit; format: 'numeric'; issuer: NitIssuer; tipo: NitTipo }\n | { ok: false; code: ValidationErrorCode; message: string };\nexport type PixKey = string & { readonly __brand: 'PixKey' };\nexport type LinhaDigitavel = string & { readonly __brand: 'LinhaDigitavel' };\nexport type CodigoBarras = string & { readonly __brand: 'CodigoBarras' };\nexport type CartaoCredito = string & { readonly __brand: 'CartaoCredito' };\nexport type Ean = string & { readonly __brand: 'Ean' };\nexport type InscricaoEstadual = string & { readonly __brand: 'InscricaoEstadual' };\nexport type InscricaoEstadualProdutorRural = string & { readonly __brand: 'InscricaoEstadualProdutorRural' };\nexport type Rg = string & { readonly __brand: 'Rg' };\nexport type Telefone = string & { readonly __brand: 'Telefone' };\nexport type BrCodePayload = string & { readonly __brand: 'BrCodePayload' };\n\nexport type UfCode =\n | 'AC' | 'AL' | 'AM' | 'AP' | 'BA' | 'CE' | 'DF' | 'ES' | 'GO' | 'MA' | 'MG' | 'MS' | 'MT'\n | 'PA' | 'PB' | 'PE' | 'PI' | 'PR' | 'RJ' | 'RN' | 'RO' | 'RR' | 'RS' | 'SC' | 'SE' | 'SP' | 'TO';\n\n/** Phase-1 RG UFs with implemented validators. */\nexport type RgUfCode = 'SP' | 'RJ' | 'MG' | 'PR' | 'RS' | 'SC';\n\nexport type CardBrand = 'visa' | 'mastercard' | 'amex' | 'elo' | 'hipercard' | 'unknown';\n\nexport type CartaoCreditoValidationResult =\n | { ok: true; value: CartaoCredito; format: 'cartao-credito'; brand: CardBrand }\n | { ok: false; code: ValidationErrorCode; message: string; brand?: CardBrand };\n\nexport type EanValidationResult =\n | { ok: true; value: Ean; format: 'ean-8' | 'ean-13' }\n | { ok: false; code: ValidationErrorCode; message: string };\n\nexport type PixValidationResult =\n | { ok: true; value: PixKey; keyType: PixKeyType; format: DocumentFormat }\n | { ok: false; code: ValidationErrorCode; message: string; keyType?: PixKeyType };\n\nexport type BoletoSituacao = '1' | '2';\n\nexport type CobrancaBoletoValidationResult =\n | {\n ok: true;\n value: LinhaDigitavel | CodigoBarras;\n inputKind: 'linha-digitavel' | 'codigo-barras';\n format: 'linha-digitavel' | 'codigo-barras';\n situacao: BoletoSituacao;\n }\n | { ok: false; code: ValidationErrorCode; message: string; inputKind?: BoletoInputKind };\n\nexport type BoletoValidationResult =\n | {\n ok: true;\n value: LinhaDigitavel | CodigoBarras;\n inputKind: 'linha-digitavel' | 'codigo-barras';\n format: 'linha-digitavel' | 'codigo-barras';\n situacao: BoletoSituacao;\n }\n | {\n ok: true;\n value: string;\n inputKind: 'arrecadacao-linha' | 'arrecadacao-codigo-barras';\n format: 'arrecadacao';\n segment: string;\n valueType: '6' | '7' | '8' | '9';\n }\n | { ok: false; code: ValidationErrorCode; message: string; inputKind?: BoletoInputKind };\n\nexport type InscricaoEstadualValidationResult =\n | { ok: true; value: InscricaoEstadual; uf: UfCode; format: 'inscricao-estadual' }\n | { ok: false; code: ValidationErrorCode; message: string; uf?: UfCode };\n\nexport type IeProdutorRuralValidationResult =\n | { ok: true; value: InscricaoEstadualProdutorRural; uf: 'SP'; format: 'inscricao-estadual-produtor-rural' }\n | { ok: false; code: ValidationErrorCode; message: string; uf?: UfCode };\n\nexport type RgValidationResult =\n | {\n ok: true;\n value: Rg;\n uf: RgUfCode;\n format: DocumentFormat;\n checkDigitValidated: boolean;\n }\n | { ok: false; code: ValidationErrorCode; message: string; uf?: RgUfCode };\n\nexport type TituloEleitorValidationResult =\n | {\n ok: true;\n value: TituloEleitor;\n format: 'numeric';\n ufCode: number;\n uf?: UfCode;\n exterior?: true;\n }\n | { ok: false; code: ValidationErrorCode; message: string; ufCode?: number };\n\nexport type NfeChaveParsed = {\n cUF: string;\n aamm: string;\n cnpj: string;\n mod: string;\n serie: string;\n nNF: string;\n tpEmis: string;\n cNF: string;\n cDV: string;\n};\n\nexport type NfeChaveValidationResult =\n | { ok: true; value: NfeChave; format: 'numeric'; parsed: NfeChaveParsed; uf?: UfCode }\n | { ok: false; code: ValidationErrorCode; message: string; uf?: UfCode };\n\nexport type TelefoneValidationResult =\n | { ok: true; value: Telefone; tipo: TelefoneTipo; format: 'telefone' }\n | { ok: false; code: ValidationErrorCode; message: string };\n\nexport type BrCodeValidationResult =\n | {\n ok: true;\n value: BrCodePayload;\n format: 'brcode';\n merchantName: string;\n merchantCity: string;\n amount?: string;\n txid?: string;\n pixKey?: PixKey;\n pixKeyType?: PixKeyType;\n pixInitiationUrl?: string;\n }\n | { ok: false; code: ValidationErrorCode; message: string };\n\nexport function brandCnpj(value: string): Cnpj {\n return value as Cnpj;\n}\n\nexport function brandCpf(value: string): Cpf {\n return value as Cpf;\n}\n\nexport function brandCnh(value: string): Cnh {\n return value as Cnh;\n}\n\nexport function brandRenavam(value: string): Renavam {\n return value as Renavam;\n}\n\nexport function brandTituloEleitor(value: string): TituloEleitor {\n return value as TituloEleitor;\n}\n\nexport function brandNfeChave(value: string): NfeChave {\n return value as NfeChave;\n}\n\nexport function brandProcessoJudicial(value: string): ProcessoJudicial {\n return value as ProcessoJudicial;\n}\n\nexport function brandCep(value: string): Cep {\n return value as Cep;\n}\n\nexport function brandPlaca(value: string): Placa {\n return value as Placa;\n}\n\nexport function brandPisPasep(value: string): PisPasep {\n return value as PisPasep;\n}\n\nexport function brandNit(value: string): Nit {\n return value as Nit;\n}\n\nexport function brandPixKey(value: string): PixKey {\n return value as PixKey;\n}\n\nexport function brandLinhaDigitavel(value: string): LinhaDigitavel {\n return value as LinhaDigitavel;\n}\n\nexport function brandCodigoBarras(value: string): CodigoBarras {\n return value as CodigoBarras;\n}\n\nexport function brandCartaoCredito(value: string): CartaoCredito {\n return value as CartaoCredito;\n}\n\nexport function brandEan(value: string): Ean {\n return value as Ean;\n}\n\nexport function brandInscricaoEstadual(value: string): InscricaoEstadual {\n return value as InscricaoEstadual;\n}\n\nexport function brandInscricaoEstadualProdutorRural(value: string): InscricaoEstadualProdutorRural {\n return value as InscricaoEstadualProdutorRural;\n}\n\nexport function brandRg(value: string): Rg {\n return value as Rg;\n}\n\nexport function brandTelefone(value: string): Telefone {\n return value as Telefone;\n}\n\nexport function brandBrCodePayload(value: string): BrCodePayload {\n return value as BrCodePayload;\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { applyPisPasepMask } from './chunk-XFKSJRWM.js';
|
|
2
|
+
import { validatePisPasep } from './chunk-AG3VELYX.js';
|
|
3
|
+
|
|
4
|
+
// src/format/pis-pasep.ts
|
|
5
|
+
function formatPisPasep(input) {
|
|
6
|
+
const result = validatePisPasep(input);
|
|
7
|
+
if (!result.ok) {
|
|
8
|
+
return { ok: false, code: result.code, message: result.message };
|
|
9
|
+
}
|
|
10
|
+
return { ok: true, formatted: applyPisPasepMask(result.value) };
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { formatPisPasep };
|
|
14
|
+
//# sourceMappingURL=chunk-FI2JE6AS.js.map
|
|
15
|
+
//# sourceMappingURL=chunk-FI2JE6AS.js.map
|