@br-validators/core 1.3.0 → 1.6.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 +44 -15
- package/dist/aeroportos.d.ts +46 -0
- package/dist/aeroportos.js +4316 -0
- package/dist/aeroportos.js.map +1 -0
- package/dist/batch.d.ts +3 -3
- package/dist/batch.js +24 -22
- package/dist/boleto.d.ts +2 -2
- package/dist/boleto.js +5 -5
- package/dist/brcode.d.ts +2 -2
- package/dist/brcode.js +7 -7
- package/dist/cartao-credito.d.ts +2 -2
- package/dist/cartao-credito.js +3 -3
- package/dist/cep.d.ts +2 -2
- package/dist/cep.js +3 -3
- package/dist/cest.d.ts +44 -0
- package/dist/cest.js +8253 -0
- package/dist/cest.js.map +1 -0
- package/dist/{chunk-NT3TNF3R.js → chunk-24JBIV3A.js} +3 -3
- package/dist/{chunk-NT3TNF3R.js.map → chunk-24JBIV3A.js.map} +1 -1
- package/dist/{chunk-XHDRWM46.js → chunk-26MSDS43.js} +3 -3
- package/dist/{chunk-XHDRWM46.js.map → chunk-26MSDS43.js.map} +1 -1
- package/dist/{chunk-3LMDBXU6.js → chunk-2JSOXG2M.js} +3 -3
- package/dist/{chunk-3LMDBXU6.js.map → chunk-2JSOXG2M.js.map} +1 -1
- package/dist/{chunk-AU6TW3GH.js → chunk-3DLNIUBY.js} +5 -5
- package/dist/{chunk-AU6TW3GH.js.map → chunk-3DLNIUBY.js.map} +1 -1
- package/dist/{chunk-OOUEURR7.js → chunk-3JAYOBSG.js} +3 -3
- package/dist/{chunk-OOUEURR7.js.map → chunk-3JAYOBSG.js.map} +1 -1
- package/dist/chunk-3WXLMV7Q.js +3 -0
- package/dist/chunk-3WXLMV7Q.js.map +1 -0
- package/dist/chunk-475HS4CJ.js +30 -0
- package/dist/chunk-475HS4CJ.js.map +1 -0
- package/dist/{chunk-NUQSMT4Y.js → chunk-4NFEM2SU.js} +9 -3
- package/dist/chunk-4NFEM2SU.js.map +1 -0
- package/dist/chunk-6EF7GQRS.js +30 -0
- package/dist/chunk-6EF7GQRS.js.map +1 -0
- package/dist/{chunk-ZTDLGGYE.js → chunk-6VNCWSHA.js} +34 -17
- package/dist/chunk-6VNCWSHA.js.map +1 -0
- package/dist/{chunk-MZDCVTN6.js → chunk-72EZ2VUO.js} +4 -4
- package/dist/{chunk-MZDCVTN6.js.map → chunk-72EZ2VUO.js.map} +1 -1
- package/dist/chunk-7JCJGLA3.js +30 -0
- package/dist/chunk-7JCJGLA3.js.map +1 -0
- package/dist/{chunk-VKG7UEN5.js → chunk-A5UHVGRB.js} +3 -3
- package/dist/{chunk-VKG7UEN5.js.map → chunk-A5UHVGRB.js.map} +1 -1
- package/dist/{chunk-EN7PVDYB.js → chunk-C7WXL7UR.js} +4 -4
- package/dist/{chunk-EN7PVDYB.js.map → chunk-C7WXL7UR.js.map} +1 -1
- package/dist/{chunk-DYX5XSJ6.js → chunk-CGN5ST5W.js} +5 -3
- package/dist/{chunk-DYX5XSJ6.js.map → chunk-CGN5ST5W.js.map} +1 -1
- package/dist/{chunk-P6TOL5VY.js → chunk-CJKVA7VS.js} +3 -3
- package/dist/{chunk-P6TOL5VY.js.map → chunk-CJKVA7VS.js.map} +1 -1
- package/dist/{chunk-KGCLQ7QX.js → chunk-CNJ4DIYS.js} +3 -3
- package/dist/{chunk-KGCLQ7QX.js.map → chunk-CNJ4DIYS.js.map} +1 -1
- package/dist/{chunk-N6RQICAP.js → chunk-CYBWPBXJ.js} +4 -4
- package/dist/{chunk-N6RQICAP.js.map → chunk-CYBWPBXJ.js.map} +1 -1
- package/dist/{chunk-SDEJD2J7.js → chunk-DLXE3RNI.js} +3 -3
- package/dist/{chunk-SDEJD2J7.js.map → chunk-DLXE3RNI.js.map} +1 -1
- package/dist/chunk-DVA6QQUF.js +22 -0
- package/dist/chunk-DVA6QQUF.js.map +1 -0
- package/dist/{chunk-54UWHK5L.js → chunk-EGDZGSHA.js} +3 -3
- package/dist/{chunk-54UWHK5L.js.map → chunk-EGDZGSHA.js.map} +1 -1
- package/dist/chunk-EKOSTVIA.js +30 -0
- package/dist/chunk-EKOSTVIA.js.map +1 -0
- package/dist/{chunk-O3T7PUBI.js → chunk-F5OHOWZU.js} +3 -3
- package/dist/{chunk-O3T7PUBI.js.map → chunk-F5OHOWZU.js.map} +1 -1
- package/dist/chunk-F7IEPT22.js +30 -0
- package/dist/chunk-F7IEPT22.js.map +1 -0
- package/dist/{chunk-RMTHCPIV.js → chunk-FLZGOGER.js} +4 -4
- package/dist/{chunk-RMTHCPIV.js.map → chunk-FLZGOGER.js.map} +1 -1
- package/dist/chunk-FUYDR7JI.js +44 -0
- package/dist/chunk-FUYDR7JI.js.map +1 -0
- package/dist/chunk-G557DGIX.js +398 -0
- package/dist/chunk-G557DGIX.js.map +1 -0
- package/dist/{chunk-ITHT54NC.js → chunk-HZWERBZB.js} +37 -17
- package/dist/chunk-HZWERBZB.js.map +1 -0
- package/dist/{chunk-AO6UTQ4A.js → chunk-IJ2DAVSD.js} +3 -3
- package/dist/{chunk-AO6UTQ4A.js.map → chunk-IJ2DAVSD.js.map} +1 -1
- package/dist/chunk-ILKF7HP7.js +31 -0
- package/dist/chunk-ILKF7HP7.js.map +1 -0
- package/dist/{chunk-MAM4U3UR.js → chunk-IRERFIL5.js} +3 -3
- package/dist/{chunk-MAM4U3UR.js.map → chunk-IRERFIL5.js.map} +1 -1
- package/dist/{chunk-CSRBRKXY.js → chunk-ISMIJ5DH.js} +3 -3
- package/dist/{chunk-CSRBRKXY.js.map → chunk-ISMIJ5DH.js.map} +1 -1
- package/dist/{chunk-L7PF4KD6.js → chunk-LBAWZ4EV.js} +3 -3
- package/dist/{chunk-L7PF4KD6.js.map → chunk-LBAWZ4EV.js.map} +1 -1
- package/dist/{chunk-QK27VDVB.js → chunk-LCY6USO2.js} +35 -18
- package/dist/chunk-LCY6USO2.js.map +1 -0
- package/dist/{chunk-XWHGXSQV.js → chunk-LPGSPM53.js} +3 -3
- package/dist/{chunk-XWHGXSQV.js.map → chunk-LPGSPM53.js.map} +1 -1
- package/dist/{chunk-5EJAENH5.js → chunk-MDFK6L72.js} +3 -3
- package/dist/{chunk-5EJAENH5.js.map → chunk-MDFK6L72.js.map} +1 -1
- package/dist/chunk-NQIDHQ6U.js +3 -0
- package/dist/chunk-NQIDHQ6U.js.map +1 -0
- package/dist/chunk-NTVB7R3A.js +30 -0
- package/dist/chunk-NTVB7R3A.js.map +1 -0
- package/dist/chunk-O4AO4YWC.js +30 -0
- package/dist/chunk-O4AO4YWC.js.map +1 -0
- package/dist/{chunk-S4WWYHQM.js → chunk-OH4CXHFH.js} +13 -3
- package/dist/chunk-OH4CXHFH.js.map +1 -0
- package/dist/{chunk-B6A7VF4R.js → chunk-OWD47AWI.js} +3 -3
- package/dist/{chunk-B6A7VF4R.js.map → chunk-OWD47AWI.js.map} +1 -1
- package/dist/{chunk-QB7SZS2C.js → chunk-OY53JDPO.js} +40 -19
- package/dist/chunk-OY53JDPO.js.map +1 -0
- package/dist/{chunk-665E36SC.js → chunk-P3EJRH4P.js} +4 -4
- package/dist/{chunk-665E36SC.js.map → chunk-P3EJRH4P.js.map} +1 -1
- package/dist/{chunk-GWAYWBHN.js → chunk-PTZR6C7Y.js} +14 -6
- package/dist/chunk-PTZR6C7Y.js.map +1 -0
- package/dist/{chunk-E2EFGMWA.js → chunk-QSSKPIG5.js} +3 -3
- package/dist/{chunk-E2EFGMWA.js.map → chunk-QSSKPIG5.js.map} +1 -1
- package/dist/{chunk-FBARVLLP.js → chunk-RSJK46ZE.js} +3 -3
- package/dist/{chunk-FBARVLLP.js.map → chunk-RSJK46ZE.js.map} +1 -1
- package/dist/chunk-RWO34ORS.js +33 -0
- package/dist/chunk-RWO34ORS.js.map +1 -0
- package/dist/{chunk-JSNXKBZA.js → chunk-SH6K4PUU.js} +3 -3
- package/dist/{chunk-JSNXKBZA.js.map → chunk-SH6K4PUU.js.map} +1 -1
- package/dist/{chunk-EQV33L7H.js → chunk-T5NFIPTU.js} +3 -3
- package/dist/{chunk-EQV33L7H.js.map → chunk-T5NFIPTU.js.map} +1 -1
- package/dist/{chunk-CDNOUZEI.js → chunk-TAOFFAG3.js} +3 -3
- package/dist/{chunk-CDNOUZEI.js.map → chunk-TAOFFAG3.js.map} +1 -1
- package/dist/{chunk-YD5MPZWY.js → chunk-TTDHGQEC.js} +3 -3
- package/dist/{chunk-YD5MPZWY.js.map → chunk-TTDHGQEC.js.map} +1 -1
- package/dist/{chunk-JLCQ7MGC.js → chunk-ULNZHOMA.js} +3 -3
- package/dist/{chunk-JLCQ7MGC.js.map → chunk-ULNZHOMA.js.map} +1 -1
- package/dist/{chunk-KLONQL76.js → chunk-UTSZKJAL.js} +7 -7
- package/dist/{chunk-KLONQL76.js.map → chunk-UTSZKJAL.js.map} +1 -1
- package/dist/{chunk-ANWQBKGN.js → chunk-VDCITFZG.js} +3 -3
- package/dist/{chunk-ANWQBKGN.js.map → chunk-VDCITFZG.js.map} +1 -1
- package/dist/chunk-VE2XZSKP.js +150 -0
- package/dist/chunk-VE2XZSKP.js.map +1 -0
- package/dist/{chunk-NHFSEWO2.js → chunk-VJT3UGN2.js} +34 -19
- package/dist/chunk-VJT3UGN2.js.map +1 -0
- package/dist/{chunk-SKDMG3FK.js → chunk-W2K4RQ3M.js} +33 -33
- package/dist/{chunk-SKDMG3FK.js.map → chunk-W2K4RQ3M.js.map} +1 -1
- package/dist/{chunk-VSW3NBJQ.js → chunk-WAYYRZ2L.js} +3 -3
- package/dist/{chunk-VSW3NBJQ.js.map → chunk-WAYYRZ2L.js.map} +1 -1
- package/dist/{chunk-JKDU7QYP.js → chunk-Z7KH65RZ.js} +3 -3
- package/dist/{chunk-JKDU7QYP.js.map → chunk-Z7KH65RZ.js.map} +1 -1
- package/dist/chunk-ZWAYSR5K.js +30 -0
- package/dist/chunk-ZWAYSR5K.js.map +1 -0
- package/dist/cnh.d.ts +2 -2
- package/dist/cnh.js +3 -3
- package/dist/cnpj.d.ts +2 -2
- package/dist/cnpj.js +4 -4
- package/dist/compare.d.ts +3 -3
- package/dist/compare.js +26 -24
- package/dist/cpf.d.ts +2 -2
- package/dist/cpf.js +4 -4
- package/dist/data-catalog.js +33 -11
- package/dist/data-catalog.js.map +1 -1
- package/dist/detect.d.ts +2 -2
- package/dist/detect.js +22 -21
- package/dist/diff.d.ts +3 -3
- package/dist/diff.js +26 -24
- package/dist/generate.d.ts +1 -1
- package/dist/generate.js +35 -35
- package/dist/incoterms.d.ts +36 -0
- package/dist/incoterms.js +87 -0
- package/dist/incoterms.js.map +1 -0
- package/dist/{index-BEJFgDXj.d.ts → index-CJ5ACErT.d.ts} +2 -2
- package/dist/index.d.ts +8 -6
- package/dist/index.js +62 -57
- package/dist/index.js.map +1 -1
- package/dist/{inscricao-estadual-produtor-rural-BXFVQscj.d.ts → inscricao-estadual-produtor-rural-BNAyLQPY.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/mask.d.ts +3 -3
- package/dist/mask.js +36 -33
- package/dist/moedas.d.ts +42 -0
- package/dist/moedas.js +977 -0
- package/dist/moedas.js.map +1 -0
- package/dist/natureza-juridica.d.ts +37 -0
- package/dist/natureza-juridica.js +398 -0
- package/dist/natureza-juridica.js.map +1 -0
- package/dist/nbs.d.ts +40 -0
- package/dist/nbs.js +3728 -0
- package/dist/nbs.js.map +1 -0
- package/dist/nfe-chave.d.ts +2 -2
- package/dist/nfe-chave.js +3 -3
- package/dist/paises-bacen.d.ts +35 -0
- package/dist/paises-bacen.js +1044 -0
- package/dist/paises-bacen.js.map +1 -0
- package/dist/pis-pasep.d.ts +2 -2
- package/dist/pis-pasep.js +3 -3
- package/dist/{pix-B4habHLG.d.ts → pix-QsM0lMas.d.ts} +1 -1
- package/dist/pix.d.ts +2 -2
- package/dist/pix.js +7 -7
- package/dist/placa.d.ts +2 -2
- package/dist/placa.js +3 -3
- package/dist/pncp-reference.d.ts +56 -0
- package/dist/pncp-reference.js +1560 -0
- package/dist/pncp-reference.js.map +1 -0
- package/dist/portos.d.ts +48 -0
- package/dist/portos.js +12094 -0
- package/dist/portos.js.map +1 -0
- package/dist/processo-judicial.d.ts +71 -0
- package/dist/processo-judicial.js +6 -0
- package/dist/processo-judicial.js.map +1 -0
- package/dist/renavam.d.ts +2 -2
- package/dist/renavam.js +3 -3
- package/dist/rg.d.ts +69 -0
- package/dist/rg.js +5 -0
- package/dist/rg.js.map +1 -0
- package/dist/sanitize.d.ts +2 -2
- package/dist/sanitize.js +21 -19
- package/dist/telefone.d.ts +2 -2
- package/dist/telefone.js +3 -3
- package/dist/titulo-eleitor.d.ts +2 -2
- package/dist/titulo-eleitor.js +3 -3
- package/dist/transparencia-snapshots.d.ts +61 -0
- package/dist/transparencia-snapshots.js +119 -0
- package/dist/transparencia-snapshots.js.map +1 -0
- package/dist/tse-municipios.d.ts +39 -0
- package/dist/tse-municipios.js +33469 -0
- package/dist/tse-municipios.js.map +1 -0
- package/dist/{types-MXifBcV5.d.ts → types-CQvCmvGu.d.ts} +2 -2
- package/dist/{validation-result-BaI2Xder.d.ts → validation-result-hfVg2-Mc.d.ts} +23 -3
- package/package.json +66 -1
- package/dist/chunk-GWAYWBHN.js.map +0 -1
- package/dist/chunk-ITHT54NC.js.map +0 -1
- package/dist/chunk-NHFSEWO2.js.map +0 -1
- package/dist/chunk-NUQSMT4Y.js.map +0 -1
- package/dist/chunk-QB7SZS2C.js.map +0 -1
- package/dist/chunk-QK27VDVB.js.map +0 -1
- package/dist/chunk-S4WWYHQM.js.map +0 -1
- package/dist/chunk-ZTDLGGYE.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CPF_MASK_PATTERN } from './chunk-
|
|
1
|
+
import { CPF_MASK_PATTERN } from './chunk-LBAWZ4EV.js';
|
|
2
2
|
|
|
3
3
|
// src/core/cpf/mask.ts
|
|
4
4
|
function applyCpfMask(canonical) {
|
|
@@ -10,5 +10,5 @@ function applyCpfMask(canonical) {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export { applyCpfMask };
|
|
13
|
-
//# sourceMappingURL=chunk-
|
|
14
|
-
//# sourceMappingURL=chunk-
|
|
13
|
+
//# sourceMappingURL=chunk-CNJ4DIYS.js.map
|
|
14
|
+
//# sourceMappingURL=chunk-CNJ4DIYS.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/cpf/mask.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,+CAA+C,CAAA;AAAA,EACjE;AACA,EAAA,OAAO,CAAA,EAAG,KAAA,CAAM,CAAC,CAAC,IAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA,EAAI,MAAM,CAAC,CAAC,CAAA,CAAA,EAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AACxD","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/core/cpf/mask.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,+CAA+C,CAAA;AAAA,EACjE;AACA,EAAA,OAAO,CAAA,EAAG,KAAA,CAAM,CAAC,CAAC,IAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA,EAAI,MAAM,CAAC,CAAC,CAAA,CAAA,EAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AACxD","file":"chunk-CNJ4DIYS.js","sourcesContent":["import { CPF_MASK_PATTERN } from './constants.js';\n\n/** Mask XXX.XXX.XXX-DD (BR-CPF-005). */\nexport function applyCpfMask(canonical: string): string {\n const match = CPF_MASK_PATTERN.exec(canonical);\n if (!match) {\n throw new Error('CPF must have exactly 11 digits to apply mask');\n }\n return `${match[1]}.${match[2]}.${match[3]}-${match[4]}`;\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { computeModulo10FieldDv, BOLETO_CODIGO_BARRAS_LENGTH, detectBoletoSituacao, BOLETO_CODE_ISPB_HOLDER, computeModulo11BarcodeDv, toBoletoSituacaoCode, BOLETO_ARRECADACAO_LINHA_LENGTH, BOLETO_ARRECADACAO_PRODUCT_ID, BOLETO_ARRECADACAO_CODIGO_BARRAS_LENGTH } from './chunk-
|
|
2
|
-
import { brandCodigoBarras } from './chunk-
|
|
1
|
+
import { computeModulo10FieldDv, BOLETO_CODIGO_BARRAS_LENGTH, detectBoletoSituacao, BOLETO_CODE_ISPB_HOLDER, computeModulo11BarcodeDv, toBoletoSituacaoCode, BOLETO_ARRECADACAO_LINHA_LENGTH, BOLETO_ARRECADACAO_PRODUCT_ID, BOLETO_ARRECADACAO_CODIGO_BARRAS_LENGTH } from './chunk-QSSKPIG5.js';
|
|
2
|
+
import { brandCodigoBarras } from './chunk-4NFEM2SU.js';
|
|
3
3
|
|
|
4
4
|
// src/core/boleto/codigo-barras.ts
|
|
5
5
|
function failure(code, message) {
|
|
@@ -216,5 +216,5 @@ var ARRECADACAO_MOD10_GOLDEN_SEQUENCE = "01230067896";
|
|
|
216
216
|
computeModulo10FieldDv(ARRECADACAO_MOD10_GOLDEN_SEQUENCE);
|
|
217
217
|
|
|
218
218
|
export { buildArrecadacaoGoldenPair, computeArrecadacaoModulo11Dv, getArrecadacaoDvCalculator, isArrecadacaoValueType, isValidArrecadacao, linhaArrecadacaoToCodigoBarras, stripArrecadacao, stripCodigoBarras, validateArrecadacao, validateArrecadacaoCodigoBarras, validateArrecadacaoLinha, validateCodigoBarras };
|
|
219
|
-
//# sourceMappingURL=chunk-
|
|
220
|
-
//# sourceMappingURL=chunk-
|
|
219
|
+
//# sourceMappingURL=chunk-CYBWPBXJ.js.map
|
|
220
|
+
//# sourceMappingURL=chunk-CYBWPBXJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/boleto/codigo-barras.ts","../src/core/boleto/arrecadacao-modulo.ts","../src/core/boleto/arrecadacao.ts"],"names":["failure"],"mappings":";;;;AAeA,SAAS,OAAA,CAAQ,MAA4B,OAAA,EAA+B;AAC1E,EAAA,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,IAAA,EAAM,OAAA,EAAS,WAAW,eAAA,EAAgB;AAChE;AAEO,SAAS,kBAAkB,KAAA,EAAuB;AACvD,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAChC;AAEO,SAAS,qBAAqB,KAAA,EAA+C;AAClF,EAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAC3B,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,IAAA,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,IAAA,EAAM,aAAA,EAAe,SAAS,oCAAA,EAAkC;AAAA,EACtF;AAEA,EAAA,IAAI,QAAA,CAAS,IAAA,CAAK,OAAO,CAAA,EAAG;AAC1B,IAAA,OAAO,OAAA,CAAQ,qBAAqB,iDAA8C,CAAA;AAAA,EACpF;AAEA,EAAA,IAAI,OAAA,CAAQ,WAAW,2BAAA,EAA6B;AAClD,IAAA,OAAO,OAAA,CAAQ,gBAAA,EAAkB,CAAA,8BAAA,EAA8B,2BAA2B,CAAA,OAAA,CAAS,CAAA;AAAA,EACrG;AAEA,EAAA,MAAM,YAAA,GAAe,qBAAqB,OAAO,CAAA;AACjD,EAAA,IAAI,iBAAiB,SAAA,EAAW;AAC9B,IAAA,MAAM,YAAA,GAAe,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,KAAM,uBAAA;AAC7C,IAAA,MAAM,OAAA,GAAU,eACZ,gFAAA,GACA,iEAAA;AACJ,IAAA,OAAO,OAAA,CAAQ,sBAAsB,OAAO,CAAA;AAAA,EAC9C;AAEA,EAAA,IAAI,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,KAAM,GAAA,EAAK;AAC7B,IAAA,OAAO,OAAA,CAAQ,uBAAuB,wBAAwB,CAAA;AAAA,EAChE;AAEA,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,wBAAA,CAAyB,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,GAAI,OAAA,CAAQ,KAAA,CAAM,CAAC,CAAC,CAAC,CAAA;AAC1F,EAAA,IAAI,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,KAAM,UAAA,EAAY;AACpC,IAAA,OAAO,OAAA,CAAQ,uBAAuB,4CAAyC,CAAA;AAAA,EACjF;AAEA,EAAA,MAAM,QAAA,GAAW,qBAAqB,YAAY,CAAA;AAClD,EAAA,OAAO;AAAA,IACL,EAAA,EAAI,IAAA;AAAA,IACJ,KAAA,EAAO,kBAAkB,OAAO,CAAA;AAAA,IAChC,SAAA,EAAW,eAAA;AAAA,IACX,MAAA,EAAQ,eAAA;AAAA,IACR;AAAA,GACF;AACF;;;ACvDO,SAAS,6BAA6B,MAAA,EAAwB;AACnE,EAAA,MAAM,WAAA,GAAc,CAAC,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAC,CAAA;AAC3C,EAAA,IAAI,GAAA,GAAM,CAAA;AAEV,EAAA,KAAA,IAAS,CAAA,GAAI,OAAO,MAAA,GAAS,CAAA,EAAG,IAAI,CAAA,EAAG,CAAA,IAAK,CAAA,EAAG,CAAA,EAAA,EAAK,CAAA,EAAA,EAAK;AACvD,IAAA,GAAA,IAAO,MAAA,CAAO,OAAO,CAAC,CAAC,IAAI,WAAA,CAAY,CAAA,GAAI,YAAY,MAAM,CAAA;AAAA,EAC/D;AAEA,EAAA,MAAM,YAAY,GAAA,GAAM,EAAA;AACxB,EAAA,IAAI,SAAA,KAAc,CAAA,IAAK,SAAA,KAAc,CAAA,EAAG;AACtC,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,IAAI,cAAc,EAAA,EAAI;AACpB,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,EAAA,GAAK,SAAA;AACd;AAEO,SAAS,uBAAuB,SAAA,EAAsD;AAC3F,EAAA,OAAO,cAAc,GAAA,IAAO,SAAA,KAAc,GAAA,IAAO,SAAA,KAAc,OAAO,SAAA,KAAc,GAAA;AACtF;AAIO,SAAS,2BACd,SAAA,EAC4B;AAC5B,EAAA,IAAI,SAAA,KAAc,GAAA,IAAO,SAAA,KAAc,GAAA,EAAK;AAC1C,IAAA,OAAO,sBAAA;AAAA,EACT;AACA,EAAA,IAAI,SAAA,KAAc,GAAA,IAAO,SAAA,KAAc,GAAA,EAAK;AAC1C,IAAA,OAAO,4BAAA;AAAA,EACT;AACA,EAAA,MAAM,IAAI,KAAA,CAAM,CAAA,0CAAA,EAAuC,SAAS,CAAA,CAAE,CAAA;AACpE;;;ACTA,SAASA,QAAAA,CACP,IAAA,EACA,OAAA,EACA,SAAA,EACS;AACT,EAAA,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,IAAA,EAAM,OAAA,EAAS,GAAI,SAAA,GAAY,EAAE,SAAA,EAAU,GAAI,EAAC,EAAG;AACzE;AAEO,SAAS,iBAAiB,KAAA,EAAuB;AACtD,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAChC;AAEA,SAAS,kBAAkB,OAAA,EAAiC;AAC1D,EAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA;AAClC,EAAA,MAAM,SAAA,GAAY,QAAQ,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,GAAI,OAAA,CAAQ,MAAM,CAAC,CAAA;AACvD,EAAA,MAAM,WAAW,MAAA,CAAO,0BAAA,CAA2B,SAAS,CAAA,CAAE,SAAS,CAAC,CAAA;AACxE,EAAA,IAAI,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,KAAM,QAAA,EAAU;AAClC,IAAA,OAAOA,QAAAA,CAAQ,uBAAuB,kDAA4C,CAAA;AAAA,EACpF;AACA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,qBAAA,CAAsB,OAAe,SAAA,EAAiD;AAC7F,EAAA,MAAM,EAAA,GAAK,2BAA2B,SAAS,CAAA;AAC/C,EAAA,MAAM,MAAA,GAA0C;AAAA,IAC9C,CAAC,CAAA,EAAG,EAAA,EAAI,CAAC,CAAA;AAAA,IACT,CAAC,EAAA,EAAI,EAAA,EAAI,CAAC,CAAA;AAAA,IACV,CAAC,EAAA,EAAI,EAAA,EAAI,CAAC,CAAA;AAAA,IACV,CAAC,EAAA,EAAI,EAAA,EAAI,CAAC;AAAA,GACZ;AAEA,EAAA,KAAA,MAAW,CAAC,KAAA,EAAO,OAAA,EAAS,WAAW,KAAK,MAAA,EAAQ;AAClD,IAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,KAAA,CAAM,KAAA,EAAO,QAAQ,EAAE,CAAA;AAC3C,IAAA,MAAM,QAAA,GAAW,MAAA,CAAO,EAAA,CAAG,KAAK,CAAC,CAAA;AACjC,IAAA,IAAI,KAAA,CAAM,MAAA,CAAO,OAAO,CAAA,KAAM,QAAA,EAAU;AACtC,MAAA,OAAOA,QAAAA;AAAA,QACL,qBAAA;AAAA,QACA,CAAA,8BAAA,EAA2B,MAAA,CAAO,WAAW,CAAC,CAAA,uBAAA,CAAA;AAAA,QAC9C;AAAA,OACF;AAAA,IACF;AAAA,EACF;AACA,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,+BAA+B,KAAA,EAAuB;AACpE,EAAA,OAAO,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAE,EAAE,GAAA,CAAI,CAAC,KAAA,KAAU,KAAA,CAAM,MAAM,KAAA,EAAO,KAAA,GAAQ,EAAE,CAAC,CAAA,CAAE,KAAK,EAAE,CAAA;AAC/E;AAEO,SAAS,yBAAyB,KAAA,EAA4C;AACnF,EAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAC3B,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,IAAA,OAAOA,QAAAA,CAAQ,eAAe,kCAA4B,CAAA;AAAA,EAC5D;AAEA,EAAA,IAAI,WAAA,CAAY,IAAA,CAAK,OAAO,CAAA,EAAG;AAC7B,IAAA,OAAOA,QAAAA,CAAQ,mBAAA,EAAqB,qDAAA,EAAiD,mBAAmB,CAAA;AAAA,EAC1G;AAEA,EAAA,MAAM,QAAA,GAAW,iBAAiB,OAAO,CAAA;AACzC,EAAA,IAAI,QAAA,CAAS,WAAW,+BAAA,EAAiC;AACvD,IAAA,OAAOA,QAAAA;AAAA,MACL,gBAAA;AAAA,MACA,CAAA,kCAAA,EAA+B,MAAA,CAAO,+BAA+B,CAAC,CAAA,OAAA,CAAA;AAAA,MACtE;AAAA,KACF;AAAA,EACF;AAEA,EAAA,IAAI,CAAC,QAAA,CAAS,UAAA,CAAW,6BAA6B,CAAA,EAAG;AACvD,IAAA,OAAOA,QAAAA,CAAQ,oBAAA,EAAsB,2CAAA,EAAuC,mBAAmB,CAAA;AAAA,EACjG;AAEA,EAAA,MAAM,SAAA,GAAY,QAAA,CAAS,MAAA,CAAO,CAAC,CAAA;AACnC,EAAA,IAAI,CAAC,sBAAA,CAAuB,SAAS,CAAA,EAAG;AACtC,IAAA,OAAOA,QAAAA,CAAQ,oBAAA,EAAsB,oDAAA,EAAgD,mBAAmB,CAAA;AAAA,EAC1G;AAEA,EAAA,MAAM,UAAA,GAAa,qBAAA,CAAsB,QAAA,EAAU,SAAS,CAAA;AAC5D,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,OAAO,UAAA;AAAA,EACT;AAEA,EAAA,MAAM,OAAA,GAAU,+BAA+B,QAAQ,CAAA;AACvD,EAAA,MAAM,YAAA,GAAe,kBAAkB,OAAO,CAAA;AAC9C,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,OAAO,EAAE,GAAG,YAAA,EAAc,SAAA,EAAW,mBAAA,EAAoB;AAAA,EAC3D;AAEA,EAAA,OAAO;AAAA,IACL,EAAA,EAAI,IAAA;AAAA,IACJ,KAAA,EAAO,QAAA;AAAA,IACP,SAAA,EAAW,mBAAA;AAAA,IACX,MAAA,EAAQ,aAAA;AAAA,IACR,OAAA,EAAS,QAAA,CAAS,MAAA,CAAO,CAAC,CAAA;AAAA,IAC1B;AAAA,GACF;AACF;AAEO,SAAS,gCAAgC,KAAA,EAA4C;AAC1F,EAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAC3B,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,IAAA,OAAOA,QAAAA,CAAQ,eAAe,kCAA4B,CAAA;AAAA,EAC5D;AAEA,EAAA,IAAI,QAAA,CAAS,IAAA,CAAK,OAAO,CAAA,EAAG;AAC1B,IAAA,OAAOA,QAAAA,CAAQ,mBAAA,EAAqB,mEAAA,EAA4D,2BAA2B,CAAA;AAAA,EAC7H;AAEA,EAAA,IAAI,OAAA,CAAQ,WAAW,uCAAA,EAAyC;AAC9D,IAAA,OAAOA,QAAAA;AAAA,MACL,gBAAA;AAAA,MACA,CAAA,gDAAA,EAA0C,MAAA,CAAO,uCAAuC,CAAC,CAAA,OAAA,CAAA;AAAA,MACzF;AAAA,KACF;AAAA,EACF;AAEA,EAAA,IAAI,CAAC,OAAA,CAAQ,UAAA,CAAW,6BAA6B,CAAA,EAAG;AACtD,IAAA,OAAOA,QAAAA,CAAQ,oBAAA,EAAsB,yDAAA,EAAkD,2BAA2B,CAAA;AAAA,EACpH;AAEA,EAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA;AAClC,EAAA,IAAI,CAAC,sBAAA,CAAuB,SAAS,CAAA,EAAG;AACtC,IAAA,OAAOA,QAAAA,CAAQ,oBAAA,EAAsB,oDAAA,EAAgD,2BAA2B,CAAA;AAAA,EAClH;AAEA,EAAA,MAAM,YAAA,GAAe,kBAAkB,OAAO,CAAA;AAC9C,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,OAAO,YAAA;AAAA,EACT;AAEA,EAAA,OAAO;AAAA,IACL,EAAA,EAAI,IAAA;AAAA,IACJ,KAAA,EAAO,OAAA;AAAA,IACP,SAAA,EAAW,2BAAA;AAAA,IACX,MAAA,EAAQ,aAAA;AAAA,IACR,OAAA,EAAS,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA;AAAA,IACzB;AAAA,GACF;AACF;AAEO,SAAS,oBAAoB,KAAA,EAA4C;AAC9E,EAAA,MAAM,QAAA,GAAW,gBAAA,CAAiB,KAAA,CAAM,IAAA,EAAM,CAAA;AAC9C,EAAA,IAAI,QAAA,CAAS,WAAW,CAAA,EAAG;AACzB,IAAA,OAAOA,QAAAA,CAAQ,eAAe,kCAA4B,CAAA;AAAA,EAC5D;AAEA,EAAA,IAAI,QAAA,CAAS,WAAW,+BAAA,EAAiC;AACvD,IAAA,OAAO,yBAAyB,KAAK,CAAA;AAAA,EACvC;AAEA,EAAA,IAAI,QAAA,CAAS,WAAW,uCAAA,EAAyC;AAC/D,IAAA,OAAO,gCAAgC,KAAK,CAAA;AAAA,EAC9C;AAEA,EAAA,OAAOA,QAAAA,CAAQ,kBAAkB,mDAA6C,CAAA;AAChF;AAEO,SAAS,mBAAmB,KAAA,EAAwB;AACzD,EAAA,OAAO,mBAAA,CAAoB,KAAK,CAAA,CAAE,EAAA;AACpC;AAGO,SAAS,2BAA2B,OAAA,EAMJ;AACrC,EAAA,MAAM,IAAA,GAAO,6BAAA,GAAgC,OAAA,CAAQ,OAAA,GAAU,OAAA,CAAQ,SAAA;AACvE,EAAA,MAAM,IAAA,GACJ,QAAQ,KAAA,CAAM,QAAA,CAAS,IAAI,GAAG,CAAA,GAC9B,QAAQ,OAAA,CAAQ,QAAA,CAAS,GAAG,GAAG,CAAA,GAC/B,QAAQ,IAAA,CAAK,MAAA,CAAO,IAAI,GAAG,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AAC1C,EAAA,MAAM,YAAY,IAAA,GAAO,IAAA;AACzB,EAAA,MAAM,IAAA,GAAO,0BAAA,CAA2B,OAAA,CAAQ,SAAS,CAAA;AACzD,EAAA,MAAM,UAAU,IAAA,GAAO,MAAA,CAAO,IAAA,CAAK,SAAS,CAAC,CAAA,GAAI,IAAA;AACjD,EAAA,MAAM,KAAA,GAAQ,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA,CACzB,GAAA,CAAI,CAAC,KAAA,KAAU,OAAA,CAAQ,KAAA,CAAM,KAAA,EAAO,KAAA,GAAQ,EAAE,CAAA,GAAI,MAAA,CAAO,IAAA,CAAK,OAAA,CAAQ,KAAA,CAAM,KAAA,EAAO,KAAA,GAAQ,EAAE,CAAC,CAAC,CAAC,CAAA,CAChG,IAAA,CAAK,EAAE,CAAA;AACV,EAAA,OAAO,EAAE,SAAS,KAAA,EAAM;AAC1B;AAGO,IAAM,iCAAA,GAAoC,aAAA;AACN,uBAA6B,iCAAiC","file":"chunk-N6RQICAP.js","sourcesContent":["/**\n * Código de barras validation — modulo 11 general DV (Anexo X).\n * @see BR-BOLETO-003, BR-BOLETO-004, BR-BOLETO-010\n */\nimport type { BoletoSituacao, CobrancaBoletoValidationResult } from '../../types/validation-result.js';\nimport { brandCodigoBarras } from '../../types/validation-result.js';\nimport {\n BOLETO_CODIGO_BARRAS_LENGTH,\n BOLETO_CODE_ISPB_HOLDER,\n} from './constants.js';\nimport { detectBoletoSituacao, toBoletoSituacaoCode } from './detect-situacao.js';\nimport { computeModulo11BarcodeDv } from './modulo11.js';\n\ntype FailedResult = Extract<CobrancaBoletoValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, inputKind: 'codigo-barras' };\n}\n\nexport function stripCodigoBarras(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function validateCodigoBarras(input: string): CobrancaBoletoValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Código de barras input is empty' };\n }\n\n if (/[^0-9]/.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'Código de barras contains invalid characters');\n }\n\n if (trimmed.length !== BOLETO_CODIGO_BARRAS_LENGTH) {\n return failure('INVALID_LENGTH', `Código de barras must have ${BOLETO_CODIGO_BARRAS_LENGTH} digits`);\n }\n\n const situacaoKind = detectBoletoSituacao(trimmed);\n if (situacaoKind === 'unknown') {\n const isIspbHolder = trimmed.slice(0, 3) === BOLETO_CODE_ISPB_HOLDER;\n const message = isIspbHolder\n ? 'ISPB holder boleto (code 988) requires currency indicator 0 (Situação 2)'\n : 'Bank boleto currency code must be 9 (Real) for Situação 1';\n return failure('UNSUPPORTED_FORMAT', message);\n }\n\n if (trimmed.charAt(4) === '0') {\n return failure('INVALID_CHECK_DIGIT', 'Barcode DV cannot be 0');\n }\n\n const expectedDv = String(computeModulo11BarcodeDv(trimmed.slice(0, 4) + trimmed.slice(5)));\n if (trimmed.charAt(4) !== expectedDv) {\n return failure('INVALID_CHECK_DIGIT', 'Código de barras check digit is invalid');\n }\n\n const situacao = toBoletoSituacaoCode(situacaoKind) as BoletoSituacao;\n return {\n ok: true,\n value: brandCodigoBarras(trimmed),\n inputKind: 'codigo-barras',\n format: 'codigo-barras',\n situacao,\n };\n}\n","import { computeModulo10FieldDv } from './modulo10.js';\n\n/**\n * FEBRABAN arrecadação modulo 11 — Layout v7 §09–10.\n * @see BOLETO_ARRECADACAO_OFFICIAL_SOURCE_URL\n *\n * Multipliers 2,3,4,5,6,7,8,9,2,3,4… from right; remainder 0|1 → DV 0; remainder 10 → DV 1.\n */\nexport function computeArrecadacaoModulo11Dv(digits: string): number {\n const multipliers = [2, 3, 4, 5, 6, 7, 8, 9];\n let sum = 0;\n\n for (let i = digits.length - 1, m = 0; i >= 0; i--, m++) {\n sum += Number(digits[i]) * multipliers[m % multipliers.length];\n }\n\n const remainder = sum % 11;\n if (remainder === 0 || remainder === 1) {\n return 0;\n }\n if (remainder === 10) {\n return 1;\n }\n return 11 - remainder;\n}\n\nexport function isArrecadacaoValueType(valueType: string): valueType is ArrecadacaoValueType {\n return valueType === '6' || valueType === '7' || valueType === '8' || valueType === '9';\n}\n\nexport type ArrecadacaoValueType = '6' | '7' | '8' | '9';\n\nexport function getArrecadacaoDvCalculator(\n valueType: string,\n): (digits: string) => number {\n if (valueType === '6' || valueType === '7') {\n return computeModulo10FieldDv;\n }\n if (valueType === '8' || valueType === '9') {\n return computeArrecadacaoModulo11Dv;\n }\n throw new Error(`Unsupported arrecadação value type: ${valueType}`);\n}\n\n/** Re-export cobrança-compatible modulo 10 (Layout v7 §07 — same algorithm). */\nexport { computeModulo10FieldDv as computeArrecadacaoModulo10Dv } from './modulo10.js';\n","/**\n * Boleto arrecadação — FEBRABAN Layout v7 (48-digit linha + 44-digit código de barras).\n * @see docs/use-cases/UC-007-validate-boleto.md\n * @see BOLETO_ARRECADACAO_OFFICIAL_SOURCE_URL\n */\nimport type { ValidationErrorCode } from '../../types/validation-result.js';\nimport {\n BOLETO_ARRECADACAO_CODIGO_BARRAS_LENGTH,\n BOLETO_ARRECADACAO_LINHA_LENGTH,\n BOLETO_ARRECADACAO_PRODUCT_ID,\n} from './constants.js';\nimport {\n computeArrecadacaoModulo10Dv,\n getArrecadacaoDvCalculator,\n isArrecadacaoValueType,\n type ArrecadacaoValueType,\n} from './arrecadacao-modulo.js';\n\nexport type ArrecadacaoInputKind = 'arrecadacao-linha' | 'arrecadacao-codigo-barras';\n\nexport type ArrecadacaoValidationResult =\n | {\n ok: true;\n value: string;\n inputKind: ArrecadacaoInputKind;\n format: 'arrecadacao';\n segment: string;\n valueType: ArrecadacaoValueType;\n }\n | { ok: false; code: ValidationErrorCode; message: string; inputKind?: ArrecadacaoInputKind };\n\ntype Failure = Extract<ArrecadacaoValidationResult, { ok: false }>;\n\nfunction failure(\n code: Failure['code'],\n message: string,\n inputKind?: ArrecadacaoInputKind,\n): Failure {\n return { ok: false, code, message, ...(inputKind ? { inputKind } : {}) };\n}\n\nexport function stripArrecadacao(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nfunction validateGeneralDv(barcode: string): Failure | null {\n const valueType = barcode.charAt(2) as ArrecadacaoValueType;\n const withoutDv = barcode.slice(0, 3) + barcode.slice(4);\n const expected = String(getArrecadacaoDvCalculator(valueType)(withoutDv));\n if (barcode.charAt(3) !== expected) {\n return failure('INVALID_CHECK_DIGIT', 'Arrecadação general check digit is invalid');\n }\n return null;\n}\n\nfunction validateLinhaFieldDvs(linha: string, valueType: ArrecadacaoValueType): Failure | null {\n const dv = getArrecadacaoDvCalculator(valueType);\n const blocks: Array<[number, number, number]> = [\n [0, 11, 1],\n [12, 23, 2],\n [24, 35, 3],\n [36, 47, 4],\n ];\n\n for (const [start, dvIndex, blockNumber] of blocks) {\n const field = linha.slice(start, start + 11);\n const expected = String(dv(field));\n if (linha.charAt(dvIndex) !== expected) {\n return failure(\n 'INVALID_CHECK_DIGIT',\n `Arrecadação linha block ${String(blockNumber)} check digit is invalid`,\n 'arrecadacao-linha',\n );\n }\n }\n return null;\n}\n\nexport function linhaArrecadacaoToCodigoBarras(linha: string): string {\n return [0, 12, 24, 36].map((start) => linha.slice(start, start + 11)).join('');\n}\n\nexport function validateArrecadacaoLinha(input: string): ArrecadacaoValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return failure('EMPTY_INPUT', 'Arrecadação input is empty');\n }\n\n if (/[^0-9.\\s]/.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'Arrecadação linha contains invalid characters', 'arrecadacao-linha');\n }\n\n const stripped = stripArrecadacao(trimmed);\n if (stripped.length !== BOLETO_ARRECADACAO_LINHA_LENGTH) {\n return failure(\n 'INVALID_LENGTH',\n `Arrecadação linha must have ${String(BOLETO_ARRECADACAO_LINHA_LENGTH)} digits`,\n 'arrecadacao-linha',\n );\n }\n\n if (!stripped.startsWith(BOLETO_ARRECADACAO_PRODUCT_ID)) {\n return failure('UNSUPPORTED_FORMAT', 'Arrecadação linha must start with 8', 'arrecadacao-linha');\n }\n\n const valueType = stripped.charAt(2);\n if (!isArrecadacaoValueType(valueType)) {\n return failure('UNSUPPORTED_FORMAT', 'Arrecadação value type must be 6, 7, 8, or 9', 'arrecadacao-linha');\n }\n\n const fieldError = validateLinhaFieldDvs(stripped, valueType);\n if (fieldError) {\n return fieldError;\n }\n\n const barcode = linhaArrecadacaoToCodigoBarras(stripped);\n const generalError = validateGeneralDv(barcode);\n if (generalError) {\n return { ...generalError, inputKind: 'arrecadacao-linha' };\n }\n\n return {\n ok: true,\n value: stripped,\n inputKind: 'arrecadacao-linha',\n format: 'arrecadacao',\n segment: stripped.charAt(1),\n valueType,\n };\n}\n\nexport function validateArrecadacaoCodigoBarras(input: string): ArrecadacaoValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return failure('EMPTY_INPUT', 'Arrecadação input is empty');\n }\n\n if (/[^0-9]/.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'Arrecadação código de barras contains invalid characters', 'arrecadacao-codigo-barras');\n }\n\n if (trimmed.length !== BOLETO_ARRECADACAO_CODIGO_BARRAS_LENGTH) {\n return failure(\n 'INVALID_LENGTH',\n `Arrecadação código de barras must have ${String(BOLETO_ARRECADACAO_CODIGO_BARRAS_LENGTH)} digits`,\n 'arrecadacao-codigo-barras',\n );\n }\n\n if (!trimmed.startsWith(BOLETO_ARRECADACAO_PRODUCT_ID)) {\n return failure('UNSUPPORTED_FORMAT', 'Arrecadação código de barras must start with 8', 'arrecadacao-codigo-barras');\n }\n\n const valueType = trimmed.charAt(2);\n if (!isArrecadacaoValueType(valueType)) {\n return failure('UNSUPPORTED_FORMAT', 'Arrecadação value type must be 6, 7, 8, or 9', 'arrecadacao-codigo-barras');\n }\n\n const generalError = validateGeneralDv(trimmed);\n if (generalError) {\n return generalError;\n }\n\n return {\n ok: true,\n value: trimmed,\n inputKind: 'arrecadacao-codigo-barras',\n format: 'arrecadacao',\n segment: trimmed.charAt(1),\n valueType,\n };\n}\n\nexport function validateArrecadacao(input: string): ArrecadacaoValidationResult {\n const stripped = stripArrecadacao(input.trim());\n if (stripped.length === 0) {\n return failure('EMPTY_INPUT', 'Arrecadação input is empty');\n }\n\n if (stripped.length === BOLETO_ARRECADACAO_LINHA_LENGTH) {\n return validateArrecadacaoLinha(input);\n }\n\n if (stripped.length === BOLETO_ARRECADACAO_CODIGO_BARRAS_LENGTH) {\n return validateArrecadacaoCodigoBarras(input);\n }\n\n return failure('INVALID_LENGTH', 'Arrecadação input must have 44 or 48 digits');\n}\n\nexport function isValidArrecadacao(input: string): boolean {\n return validateArrecadacao(input).ok;\n}\n\n/** @internal Golden vector helper — builds valid barcode then linha. */\nexport function buildArrecadacaoGoldenPair(options: {\n segment: string;\n valueType: ArrecadacaoValueType;\n value: string;\n company: string;\n free: string;\n}): { barcode: string; linha: string } {\n const head = BOLETO_ARRECADACAO_PRODUCT_ID + options.segment + options.valueType;\n const body =\n options.value.padStart(11, '0') +\n options.company.padStart(4, '0') +\n options.free.padEnd(25, '0').slice(0, 25);\n const withoutDv = head + body;\n const dvFn = getArrecadacaoDvCalculator(options.valueType);\n const barcode = head + String(dvFn(withoutDv)) + body;\n const linha = [0, 11, 22, 33]\n .map((start) => barcode.slice(start, start + 11) + String(dvFn(barcode.slice(start, start + 11))))\n .join('');\n return { barcode, linha };\n}\n\n// verify mod10 example from FEBRABAN §07\nexport const ARRECADACAO_MOD10_GOLDEN_SEQUENCE = '01230067896';\nexport const ARRECADACAO_MOD10_GOLDEN_DV = computeArrecadacaoModulo10Dv(ARRECADACAO_MOD10_GOLDEN_SEQUENCE);\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/core/boleto/codigo-barras.ts","../src/core/boleto/arrecadacao-modulo.ts","../src/core/boleto/arrecadacao.ts"],"names":["failure"],"mappings":"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","file":"chunk-CYBWPBXJ.js","sourcesContent":["/**\n * Código de barras validation — modulo 11 general DV (Anexo X).\n * @see BR-BOLETO-003, BR-BOLETO-004, BR-BOLETO-010\n */\nimport type { BoletoSituacao, CobrancaBoletoValidationResult } from '../../types/validation-result.js';\nimport { brandCodigoBarras } from '../../types/validation-result.js';\nimport {\n BOLETO_CODIGO_BARRAS_LENGTH,\n BOLETO_CODE_ISPB_HOLDER,\n} from './constants.js';\nimport { detectBoletoSituacao, toBoletoSituacaoCode } from './detect-situacao.js';\nimport { computeModulo11BarcodeDv } from './modulo11.js';\n\ntype FailedResult = Extract<CobrancaBoletoValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, inputKind: 'codigo-barras' };\n}\n\nexport function stripCodigoBarras(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function validateCodigoBarras(input: string): CobrancaBoletoValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Código de barras input is empty' };\n }\n\n if (/[^0-9]/.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'Código de barras contains invalid characters');\n }\n\n if (trimmed.length !== BOLETO_CODIGO_BARRAS_LENGTH) {\n return failure('INVALID_LENGTH', `Código de barras must have ${BOLETO_CODIGO_BARRAS_LENGTH} digits`);\n }\n\n const situacaoKind = detectBoletoSituacao(trimmed);\n if (situacaoKind === 'unknown') {\n const isIspbHolder = trimmed.slice(0, 3) === BOLETO_CODE_ISPB_HOLDER;\n const message = isIspbHolder\n ? 'ISPB holder boleto (code 988) requires currency indicator 0 (Situação 2)'\n : 'Bank boleto currency code must be 9 (Real) for Situação 1';\n return failure('UNSUPPORTED_FORMAT', message);\n }\n\n if (trimmed.charAt(4) === '0') {\n return failure('INVALID_CHECK_DIGIT', 'Barcode DV cannot be 0');\n }\n\n const expectedDv = String(computeModulo11BarcodeDv(trimmed.slice(0, 4) + trimmed.slice(5)));\n if (trimmed.charAt(4) !== expectedDv) {\n return failure('INVALID_CHECK_DIGIT', 'Código de barras check digit is invalid');\n }\n\n const situacao = toBoletoSituacaoCode(situacaoKind) as BoletoSituacao;\n return {\n ok: true,\n value: brandCodigoBarras(trimmed),\n inputKind: 'codigo-barras',\n format: 'codigo-barras',\n situacao,\n };\n}\n","import { computeModulo10FieldDv } from './modulo10.js';\n\n/**\n * FEBRABAN arrecadação modulo 11 — Layout v7 §09–10.\n * @see BOLETO_ARRECADACAO_OFFICIAL_SOURCE_URL\n *\n * Multipliers 2,3,4,5,6,7,8,9,2,3,4… from right; remainder 0|1 → DV 0; remainder 10 → DV 1.\n */\nexport function computeArrecadacaoModulo11Dv(digits: string): number {\n const multipliers = [2, 3, 4, 5, 6, 7, 8, 9];\n let sum = 0;\n\n for (let i = digits.length - 1, m = 0; i >= 0; i--, m++) {\n sum += Number(digits[i]) * multipliers[m % multipliers.length];\n }\n\n const remainder = sum % 11;\n if (remainder === 0 || remainder === 1) {\n return 0;\n }\n if (remainder === 10) {\n return 1;\n }\n return 11 - remainder;\n}\n\nexport function isArrecadacaoValueType(valueType: string): valueType is ArrecadacaoValueType {\n return valueType === '6' || valueType === '7' || valueType === '8' || valueType === '9';\n}\n\nexport type ArrecadacaoValueType = '6' | '7' | '8' | '9';\n\nexport function getArrecadacaoDvCalculator(\n valueType: string,\n): (digits: string) => number {\n if (valueType === '6' || valueType === '7') {\n return computeModulo10FieldDv;\n }\n if (valueType === '8' || valueType === '9') {\n return computeArrecadacaoModulo11Dv;\n }\n throw new Error(`Unsupported arrecadação value type: ${valueType}`);\n}\n\n/** Re-export cobrança-compatible modulo 10 (Layout v7 §07 — same algorithm). */\nexport { computeModulo10FieldDv as computeArrecadacaoModulo10Dv } from './modulo10.js';\n","/**\n * Boleto arrecadação — FEBRABAN Layout v7 (48-digit linha + 44-digit código de barras).\n * @see docs/use-cases/UC-007-validate-boleto.md\n * @see BOLETO_ARRECADACAO_OFFICIAL_SOURCE_URL\n */\nimport type { ValidationErrorCode } from '../../types/validation-result.js';\nimport {\n BOLETO_ARRECADACAO_CODIGO_BARRAS_LENGTH,\n BOLETO_ARRECADACAO_LINHA_LENGTH,\n BOLETO_ARRECADACAO_PRODUCT_ID,\n} from './constants.js';\nimport {\n computeArrecadacaoModulo10Dv,\n getArrecadacaoDvCalculator,\n isArrecadacaoValueType,\n type ArrecadacaoValueType,\n} from './arrecadacao-modulo.js';\n\nexport type ArrecadacaoInputKind = 'arrecadacao-linha' | 'arrecadacao-codigo-barras';\n\nexport type ArrecadacaoValidationResult =\n | {\n ok: true;\n value: string;\n inputKind: ArrecadacaoInputKind;\n format: 'arrecadacao';\n segment: string;\n valueType: ArrecadacaoValueType;\n }\n | { ok: false; code: ValidationErrorCode; message: string; inputKind?: ArrecadacaoInputKind };\n\ntype Failure = Extract<ArrecadacaoValidationResult, { ok: false }>;\n\nfunction failure(\n code: Failure['code'],\n message: string,\n inputKind?: ArrecadacaoInputKind,\n): Failure {\n return { ok: false, code, message, ...(inputKind ? { inputKind } : {}) };\n}\n\nexport function stripArrecadacao(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nfunction validateGeneralDv(barcode: string): Failure | null {\n const valueType = barcode.charAt(2) as ArrecadacaoValueType;\n const withoutDv = barcode.slice(0, 3) + barcode.slice(4);\n const expected = String(getArrecadacaoDvCalculator(valueType)(withoutDv));\n if (barcode.charAt(3) !== expected) {\n return failure('INVALID_CHECK_DIGIT', 'Arrecadação general check digit is invalid');\n }\n return null;\n}\n\nfunction validateLinhaFieldDvs(linha: string, valueType: ArrecadacaoValueType): Failure | null {\n const dv = getArrecadacaoDvCalculator(valueType);\n const blocks: Array<[number, number, number]> = [\n [0, 11, 1],\n [12, 23, 2],\n [24, 35, 3],\n [36, 47, 4],\n ];\n\n for (const [start, dvIndex, blockNumber] of blocks) {\n const field = linha.slice(start, start + 11);\n const expected = String(dv(field));\n if (linha.charAt(dvIndex) !== expected) {\n return failure(\n 'INVALID_CHECK_DIGIT',\n `Arrecadação linha block ${String(blockNumber)} check digit is invalid`,\n 'arrecadacao-linha',\n );\n }\n }\n return null;\n}\n\nexport function linhaArrecadacaoToCodigoBarras(linha: string): string {\n return [0, 12, 24, 36].map((start) => linha.slice(start, start + 11)).join('');\n}\n\nexport function validateArrecadacaoLinha(input: string): ArrecadacaoValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return failure('EMPTY_INPUT', 'Arrecadação input is empty');\n }\n\n if (/[^0-9.\\s]/.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'Arrecadação linha contains invalid characters', 'arrecadacao-linha');\n }\n\n const stripped = stripArrecadacao(trimmed);\n if (stripped.length !== BOLETO_ARRECADACAO_LINHA_LENGTH) {\n return failure(\n 'INVALID_LENGTH',\n `Arrecadação linha must have ${String(BOLETO_ARRECADACAO_LINHA_LENGTH)} digits`,\n 'arrecadacao-linha',\n );\n }\n\n if (!stripped.startsWith(BOLETO_ARRECADACAO_PRODUCT_ID)) {\n return failure('UNSUPPORTED_FORMAT', 'Arrecadação linha must start with 8', 'arrecadacao-linha');\n }\n\n const valueType = stripped.charAt(2);\n if (!isArrecadacaoValueType(valueType)) {\n return failure('UNSUPPORTED_FORMAT', 'Arrecadação value type must be 6, 7, 8, or 9', 'arrecadacao-linha');\n }\n\n const fieldError = validateLinhaFieldDvs(stripped, valueType);\n if (fieldError) {\n return fieldError;\n }\n\n const barcode = linhaArrecadacaoToCodigoBarras(stripped);\n const generalError = validateGeneralDv(barcode);\n if (generalError) {\n return { ...generalError, inputKind: 'arrecadacao-linha' };\n }\n\n return {\n ok: true,\n value: stripped,\n inputKind: 'arrecadacao-linha',\n format: 'arrecadacao',\n segment: stripped.charAt(1),\n valueType,\n };\n}\n\nexport function validateArrecadacaoCodigoBarras(input: string): ArrecadacaoValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return failure('EMPTY_INPUT', 'Arrecadação input is empty');\n }\n\n if (/[^0-9]/.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'Arrecadação código de barras contains invalid characters', 'arrecadacao-codigo-barras');\n }\n\n if (trimmed.length !== BOLETO_ARRECADACAO_CODIGO_BARRAS_LENGTH) {\n return failure(\n 'INVALID_LENGTH',\n `Arrecadação código de barras must have ${String(BOLETO_ARRECADACAO_CODIGO_BARRAS_LENGTH)} digits`,\n 'arrecadacao-codigo-barras',\n );\n }\n\n if (!trimmed.startsWith(BOLETO_ARRECADACAO_PRODUCT_ID)) {\n return failure('UNSUPPORTED_FORMAT', 'Arrecadação código de barras must start with 8', 'arrecadacao-codigo-barras');\n }\n\n const valueType = trimmed.charAt(2);\n if (!isArrecadacaoValueType(valueType)) {\n return failure('UNSUPPORTED_FORMAT', 'Arrecadação value type must be 6, 7, 8, or 9', 'arrecadacao-codigo-barras');\n }\n\n const generalError = validateGeneralDv(trimmed);\n if (generalError) {\n return generalError;\n }\n\n return {\n ok: true,\n value: trimmed,\n inputKind: 'arrecadacao-codigo-barras',\n format: 'arrecadacao',\n segment: trimmed.charAt(1),\n valueType,\n };\n}\n\nexport function validateArrecadacao(input: string): ArrecadacaoValidationResult {\n const stripped = stripArrecadacao(input.trim());\n if (stripped.length === 0) {\n return failure('EMPTY_INPUT', 'Arrecadação input is empty');\n }\n\n if (stripped.length === BOLETO_ARRECADACAO_LINHA_LENGTH) {\n return validateArrecadacaoLinha(input);\n }\n\n if (stripped.length === BOLETO_ARRECADACAO_CODIGO_BARRAS_LENGTH) {\n return validateArrecadacaoCodigoBarras(input);\n }\n\n return failure('INVALID_LENGTH', 'Arrecadação input must have 44 or 48 digits');\n}\n\nexport function isValidArrecadacao(input: string): boolean {\n return validateArrecadacao(input).ok;\n}\n\n/** @internal Golden vector helper — builds valid barcode then linha. */\nexport function buildArrecadacaoGoldenPair(options: {\n segment: string;\n valueType: ArrecadacaoValueType;\n value: string;\n company: string;\n free: string;\n}): { barcode: string; linha: string } {\n const head = BOLETO_ARRECADACAO_PRODUCT_ID + options.segment + options.valueType;\n const body =\n options.value.padStart(11, '0') +\n options.company.padStart(4, '0') +\n options.free.padEnd(25, '0').slice(0, 25);\n const withoutDv = head + body;\n const dvFn = getArrecadacaoDvCalculator(options.valueType);\n const barcode = head + String(dvFn(withoutDv)) + body;\n const linha = [0, 11, 22, 33]\n .map((start) => barcode.slice(start, start + 11) + String(dvFn(barcode.slice(start, start + 11))))\n .join('');\n return { barcode, linha };\n}\n\n// verify mod10 example from FEBRABAN §07\nexport const ARRECADACAO_MOD10_GOLDEN_SEQUENCE = '01230067896';\nexport const ARRECADACAO_MOD10_GOLDEN_DV = computeArrecadacaoModulo10Dv(ARRECADACAO_MOD10_GOLDEN_SEQUENCE);\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { validateCep, CEP_MASK_PATTERN } from './chunk-
|
|
1
|
+
import { validateCep, CEP_MASK_PATTERN } from './chunk-CJKVA7VS.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-DLXE3RNI.js.map
|
|
23
|
+
//# sourceMappingURL=chunk-DLXE3RNI.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-DLXE3RNI.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"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { validateProcessoJudicial, PROCESSO_JUDICIAL_NUMERIC_PATTERN, PROCESSO_JUDICIAL_LENGTH } from './chunk-VE2XZSKP.js';
|
|
2
|
+
|
|
3
|
+
// src/core/processo-judicial/mask.ts
|
|
4
|
+
function applyProcessoJudicialMask(canonical) {
|
|
5
|
+
if (!PROCESSO_JUDICIAL_NUMERIC_PATTERN.test(canonical)) {
|
|
6
|
+
throw new Error(`Processo judicial must have exactly ${PROCESSO_JUDICIAL_LENGTH} digits to format`);
|
|
7
|
+
}
|
|
8
|
+
return `${canonical.slice(0, 7)}-${canonical.slice(7, 9)}.${canonical.slice(9, 13)}.${canonical.slice(13, 14)}.${canonical.slice(14, 16)}.${canonical.slice(16, 20)}`;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// src/format/processo-judicial.ts
|
|
12
|
+
function formatProcessoJudicial(input) {
|
|
13
|
+
const result = validateProcessoJudicial(input);
|
|
14
|
+
if (!result.ok) {
|
|
15
|
+
return { ok: false, code: result.code, message: result.message };
|
|
16
|
+
}
|
|
17
|
+
return { ok: true, formatted: applyProcessoJudicialMask(result.value) };
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { formatProcessoJudicial };
|
|
21
|
+
//# sourceMappingURL=chunk-DVA6QQUF.js.map
|
|
22
|
+
//# sourceMappingURL=chunk-DVA6QQUF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/processo-judicial/mask.ts","../src/format/processo-judicial.ts"],"names":[],"mappings":";;;AAKO,SAAS,0BAA0B,SAAA,EAA2B;AACnE,EAAA,IAAI,CAAC,iCAAA,CAAkC,IAAA,CAAK,SAAS,CAAA,EAAG;AACtD,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,oCAAA,EAAuC,wBAAwB,CAAA,iBAAA,CAAmB,CAAA;AAAA,EACpG;AAEA,EAAA,OAAO,CAAA,EAAG,SAAA,CAAU,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,SAAA,CAAU,KAAA,CAAM,GAAG,CAAC,CAAC,CAAA,CAAA,EAAI,SAAA,CAAU,MAAM,CAAA,EAAG,EAAE,CAAC,CAAA,CAAA,EAAI,UAAU,KAAA,CAAM,EAAA,EAAI,EAAE,CAAC,IAAI,SAAA,CAAU,KAAA,CAAM,EAAA,EAAI,EAAE,CAAC,CAAA,CAAA,EAAI,SAAA,CAAU,KAAA,CAAM,EAAA,EAAI,EAAE,CAAC,CAAA,CAAA;AACrK;;;ACPO,SAAS,uBAAuB,KAAA,EAA6B;AAClE,EAAA,MAAM,MAAA,GAAS,yBAAyB,KAAK,CAAA;AAC7C,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,yBAAA,CAA0B,MAAA,CAAO,KAAK,CAAA,EAAE;AACxE","file":"chunk-DVA6QQUF.js","sourcesContent":["import { PROCESSO_JUDICIAL_LENGTH, PROCESSO_JUDICIAL_NUMERIC_PATTERN } from './constants.js';\n\n/**\n * Official display mask — NNNNNNN-DD.AAAA.J.TR.OOOO (Resolução 65/2008).\n */\nexport function applyProcessoJudicialMask(canonical: string): string {\n if (!PROCESSO_JUDICIAL_NUMERIC_PATTERN.test(canonical)) {\n throw new Error(`Processo judicial must have exactly ${PROCESSO_JUDICIAL_LENGTH} digits to format`);\n }\n\n return `${canonical.slice(0, 7)}-${canonical.slice(7, 9)}.${canonical.slice(9, 13)}.${canonical.slice(13, 14)}.${canonical.slice(14, 16)}.${canonical.slice(16, 20)}`;\n}\n","import { applyProcessoJudicialMask } from '../core/processo-judicial/mask.js';\nimport { validateProcessoJudicial } from '../core/processo-judicial/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatProcessoJudicial(input: string): FormatResult {\n const result = validateProcessoJudicial(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyProcessoJudicialMask(result.value) };\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { validateIeSpRural, applyIeSpRuralMask } from './chunk-
|
|
1
|
+
import { validateIeSpRural, applyIeSpRuralMask } from './chunk-TAOFFAG3.js';
|
|
2
2
|
|
|
3
3
|
// src/format/inscricao-estadual-produtor-rural.ts
|
|
4
4
|
function formatIeProdutorRural(input) {
|
|
@@ -10,5 +10,5 @@ function formatIeProdutorRural(input) {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export { formatIeProdutorRural };
|
|
13
|
-
//# sourceMappingURL=chunk-
|
|
14
|
-
//# sourceMappingURL=chunk-
|
|
13
|
+
//# sourceMappingURL=chunk-EGDZGSHA.js.map
|
|
14
|
+
//# sourceMappingURL=chunk-EGDZGSHA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/format/inscricao-estadual-produtor-rural.ts"],"names":[],"mappings":";;;AAIO,SAAS,sBAAsB,KAAA,EAA6B;AACjE,EAAA,MAAM,MAAA,GAAS,kBAAkB,KAAK,CAAA;AACtC,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,kBAAA,CAAmB,MAAA,CAAO,KAAK,CAAA,EAAE;AACjE","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/format/inscricao-estadual-produtor-rural.ts"],"names":[],"mappings":";;;AAIO,SAAS,sBAAsB,KAAA,EAA6B;AACjE,EAAA,MAAM,MAAA,GAAS,kBAAkB,KAAK,CAAA;AACtC,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,kBAAA,CAAmB,MAAA,CAAO,KAAK,CAAA,EAAE;AACjE","file":"chunk-EGDZGSHA.js","sourcesContent":["import { applyIeSpRuralMask } from '../core/inscricao-estadual/mask.js';\nimport { validateIeSpRural } from '../core/inscricao-estadual/sp-rural.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatIeProdutorRural(input: string): FormatResult {\n const result = validateIeSpRural(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyIeSpRuralMask(result.value) };\n}\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// src/incoterms/data/metadata.json
|
|
2
|
+
var metadata_default = {
|
|
3
|
+
id: "incoterms",
|
|
4
|
+
nome: "ICC Incoterms 2020",
|
|
5
|
+
fonte: "International Chamber of Commerce \u2014 Incoterms 2020 (static reference)",
|
|
6
|
+
endpoints: [
|
|
7
|
+
"https://iccwbo.org/resources-for-business/incoterms-rules/"
|
|
8
|
+
],
|
|
9
|
+
capturadoEm: "2026-06-23",
|
|
10
|
+
atualizadoEm: "2026-06-23T18:35:34.344Z",
|
|
11
|
+
contagens: {
|
|
12
|
+
incoterms: 11
|
|
13
|
+
},
|
|
14
|
+
alteracoes: {
|
|
15
|
+
adicionados: 11,
|
|
16
|
+
removidos: 0,
|
|
17
|
+
alterados: 0,
|
|
18
|
+
comparadoCom: null
|
|
19
|
+
},
|
|
20
|
+
verificacao: {
|
|
21
|
+
agendamento: "semanal",
|
|
22
|
+
workflow: "data-refresh-bot.yml",
|
|
23
|
+
ultimaExecucao: "2026-06-23T18:35:34.344Z"
|
|
24
|
+
},
|
|
25
|
+
documentacao: "docs/OFFICIAL-SOURCES.md#incoterms"
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export { metadata_default };
|
|
29
|
+
//# sourceMappingURL=chunk-EKOSTVIA.js.map
|
|
30
|
+
//# sourceMappingURL=chunk-EKOSTVIA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/incoterms/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,WAAA;AAAA,EACN,IAAA,EAAQ,oBAAA;AAAA,EACR,KAAA,EAAS,4EAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,SAAA,EAAa;AAAA,GACf;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,EAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,SAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-EKOSTVIA.js","sourcesContent":["{\n \"id\": \"incoterms\",\n \"nome\": \"ICC Incoterms 2020\",\n \"fonte\": \"International Chamber of Commerce — Incoterms 2020 (static reference)\",\n \"endpoints\": [\n \"https://iccwbo.org/resources-for-business/incoterms-rules/\"\n ],\n \"capturadoEm\": \"2026-06-23\",\n \"atualizadoEm\": \"2026-06-23T18:35:34.344Z\",\n \"contagens\": {\n \"incoterms\": 11\n },\n \"alteracoes\": {\n \"adicionados\": 11,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": null\n },\n \"verificacao\": {\n \"agendamento\": \"semanal\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-23T18:35:34.344Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#incoterms\"\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { validateTituloEleitor, TITULO_ELEITOR_NUMERIC_PATTERN_12, TITULO_ELEITOR_NUMERIC_PATTERN_13, TITULO_ELEITOR_LENGTH, TITULO_ELEITOR_LENGTH_EXTENDED } from './chunk-
|
|
1
|
+
import { validateTituloEleitor, TITULO_ELEITOR_NUMERIC_PATTERN_12, TITULO_ELEITOR_NUMERIC_PATTERN_13, TITULO_ELEITOR_LENGTH, TITULO_ELEITOR_LENGTH_EXTENDED } from './chunk-26MSDS43.js';
|
|
2
2
|
|
|
3
3
|
// src/core/titulo-eleitor/mask.ts
|
|
4
4
|
function applyTituloEleitorMask(canonical) {
|
|
@@ -23,5 +23,5 @@ function formatTituloEleitor(input) {
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
export { formatTituloEleitor };
|
|
26
|
-
//# sourceMappingURL=chunk-
|
|
27
|
-
//# sourceMappingURL=chunk-
|
|
26
|
+
//# sourceMappingURL=chunk-F5OHOWZU.js.map
|
|
27
|
+
//# sourceMappingURL=chunk-F5OHOWZU.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/titulo-eleitor/mask.ts","../src/format/titulo-eleitor.ts"],"names":[],"mappings":";;;AAWO,SAAS,uBAAuB,SAAA,EAA2B;AAChE,EAAA,IAAI,iCAAA,CAAkC,IAAA,CAAK,SAAS,CAAA,EAAG;AACrD,IAAA,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;AAAA,EAChF;AACA,EAAA,IAAI,iCAAA,CAAkC,IAAA,CAAK,SAAS,CAAA,EAAG;AACrD,IAAA,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;AAAA,EAChF;AACA,EAAA,MAAM,IAAI,KAAA;AAAA,IACR,CAAA,uCAAA,EAAuC,qBAAqB,CAAA,IAAA,EAAO,8BAA8B,CAAA,iBAAA;AAAA,GACnG;AACF;;;ACjBO,SAAS,oBAAoB,KAAA,EAA6B;AAC/D,EAAA,MAAM,MAAA,GAAS,sBAAsB,KAAK,CAAA;AAC1C,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,sBAAA,CAAuB,MAAA,CAAO,KAAK,CAAA,EAAE;AACrE","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/core/titulo-eleitor/mask.ts","../src/format/titulo-eleitor.ts"],"names":[],"mappings":";;;AAWO,SAAS,uBAAuB,SAAA,EAA2B;AAChE,EAAA,IAAI,iCAAA,CAAkC,IAAA,CAAK,SAAS,CAAA,EAAG;AACrD,IAAA,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;AAAA,EAChF;AACA,EAAA,IAAI,iCAAA,CAAkC,IAAA,CAAK,SAAS,CAAA,EAAG;AACrD,IAAA,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;AAAA,EAChF;AACA,EAAA,MAAM,IAAI,KAAA;AAAA,IACR,CAAA,uCAAA,EAAuC,qBAAqB,CAAA,IAAA,EAAO,8BAA8B,CAAA,iBAAA;AAAA,GACnG;AACF;;;ACjBO,SAAS,oBAAoB,KAAA,EAA6B;AAC/D,EAAA,MAAM,MAAA,GAAS,sBAAsB,KAAK,CAAA;AAC1C,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,sBAAA,CAAuB,MAAA,CAAO,KAAK,CAAA,EAAE;AACrE","file":"chunk-F5OHOWZU.js","sourcesContent":["import {\n TITULO_ELEITOR_LENGTH,\n TITULO_ELEITOR_LENGTH_EXTENDED,\n TITULO_ELEITOR_NUMERIC_PATTERN_12,\n TITULO_ELEITOR_NUMERIC_PATTERN_13,\n} from './constants.js';\n\n/**\n * Display mask — `XXXX XXXX XXXX` (BR-TITULO-005).\n * @see https://pt.wikipedia.org/wiki/T%C3%ADtulo_eleitoral#C%C3%A1lculo_do_d%C3%ADgito_verificador\n */\nexport function applyTituloEleitorMask(canonical: string): string {\n if (TITULO_ELEITOR_NUMERIC_PATTERN_12.test(canonical)) {\n return `${canonical.slice(0, 4)} ${canonical.slice(4, 8)} ${canonical.slice(8)}`;\n }\n if (TITULO_ELEITOR_NUMERIC_PATTERN_13.test(canonical)) {\n return `${canonical.slice(0, 5)} ${canonical.slice(5, 9)} ${canonical.slice(9)}`;\n }\n throw new Error(\n `Título de Eleitor must have exactly ${TITULO_ELEITOR_LENGTH} or ${TITULO_ELEITOR_LENGTH_EXTENDED} digits to format`,\n );\n}\n","import { applyTituloEleitorMask } from '../core/titulo-eleitor/mask.js';\nimport { validateTituloEleitor } from '../core/titulo-eleitor/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatTituloEleitor(input: string): FormatResult {\n const result = validateTituloEleitor(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyTituloEleitorMask(result.value) };\n}\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// src/natureza-juridica/data/metadata.json
|
|
2
|
+
var metadata_default = {
|
|
3
|
+
id: "natureza-juridica",
|
|
4
|
+
nome: "RFB CNPJ Naturezas Jur\xEDdicas",
|
|
5
|
+
fonte: "Receita Federal \u2014 Dados Abertos CNPJ (Naturezas.zip)",
|
|
6
|
+
endpoints: [
|
|
7
|
+
"https://github.com/jonathands/dados-abertos-receita-cnpj/releases/download/2024.09/Naturezas.zip"
|
|
8
|
+
],
|
|
9
|
+
capturadoEm: "2026-06-23",
|
|
10
|
+
atualizadoEm: "2026-06-23T18:39:09.224Z",
|
|
11
|
+
contagens: {
|
|
12
|
+
naturezas: 90
|
|
13
|
+
},
|
|
14
|
+
alteracoes: {
|
|
15
|
+
adicionados: 90,
|
|
16
|
+
removidos: 0,
|
|
17
|
+
alterados: 0,
|
|
18
|
+
comparadoCom: null
|
|
19
|
+
},
|
|
20
|
+
verificacao: {
|
|
21
|
+
agendamento: "semanal",
|
|
22
|
+
workflow: "data-refresh-bot.yml",
|
|
23
|
+
ultimaExecucao: "2026-06-23T18:39:09.224Z"
|
|
24
|
+
},
|
|
25
|
+
documentacao: "docs/OFFICIAL-SOURCES.md#natureza-juridica"
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export { metadata_default };
|
|
29
|
+
//# sourceMappingURL=chunk-F7IEPT22.js.map
|
|
30
|
+
//# sourceMappingURL=chunk-F7IEPT22.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/natureza-juridica/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,mBAAA;AAAA,EACN,IAAA,EAAQ,iCAAA;AAAA,EACR,KAAA,EAAS,2DAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,SAAA,EAAa;AAAA,GACf;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,EAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,SAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-F7IEPT22.js","sourcesContent":["{\n \"id\": \"natureza-juridica\",\n \"nome\": \"RFB CNPJ Naturezas Jurídicas\",\n \"fonte\": \"Receita Federal — Dados Abertos CNPJ (Naturezas.zip)\",\n \"endpoints\": [\n \"https://github.com/jonathands/dados-abertos-receita-cnpj/releases/download/2024.09/Naturezas.zip\"\n ],\n \"capturadoEm\": \"2026-06-23\",\n \"atualizadoEm\": \"2026-06-23T18:39:09.224Z\",\n \"contagens\": {\n \"naturezas\": 90\n },\n \"alteracoes\": {\n \"adicionados\": 90,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": null\n },\n \"verificacao\": {\n \"agendamento\": \"semanal\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-23T18:39:09.224Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#natureza-juridica\"\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { applyCnpjMask } from './chunk-
|
|
2
|
-
import { validateCnpj } from './chunk-
|
|
1
|
+
import { applyCnpjMask } from './chunk-ISMIJ5DH.js';
|
|
2
|
+
import { validateCnpj } from './chunk-RSJK46ZE.js';
|
|
3
3
|
|
|
4
4
|
// src/format/cnpj.ts
|
|
5
5
|
function formatCnpj(input) {
|
|
@@ -17,5 +17,5 @@ function formatCnpjAlphanumeric(input) {
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
export { formatCnpj, formatCnpjAlphanumeric, formatCnpjNumeric };
|
|
20
|
-
//# sourceMappingURL=chunk-
|
|
21
|
-
//# sourceMappingURL=chunk-
|
|
20
|
+
//# sourceMappingURL=chunk-FLZGOGER.js.map
|
|
21
|
+
//# sourceMappingURL=chunk-FLZGOGER.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/format/cnpj.ts"],"names":[],"mappings":";;;;AAIO,SAAS,WAAW,KAAA,EAA6B;AACtD,EAAA,MAAM,MAAA,GAAS,aAAa,KAAK,CAAA;AACjC,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,aAAA,CAAc,MAAA,CAAO,KAAK,CAAA,EAAE;AAC5D;AAEO,SAAS,kBAAkB,KAAA,EAA6B;AAC7D,EAAA,OAAO,WAAW,KAAK,CAAA;AACzB;AAEO,SAAS,uBAAuB,KAAA,EAA6B;AAClE,EAAA,OAAO,WAAW,KAAK,CAAA;AACzB","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/format/cnpj.ts"],"names":[],"mappings":";;;;AAIO,SAAS,WAAW,KAAA,EAA6B;AACtD,EAAA,MAAM,MAAA,GAAS,aAAa,KAAK,CAAA;AACjC,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,aAAA,CAAc,MAAA,CAAO,KAAK,CAAA,EAAE;AAC5D;AAEO,SAAS,kBAAkB,KAAA,EAA6B;AAC7D,EAAA,OAAO,WAAW,KAAK,CAAA;AACzB;AAEO,SAAS,uBAAuB,KAAA,EAA6B;AAClE,EAAA,OAAO,WAAW,KAAK,CAAA;AACzB","file":"chunk-FLZGOGER.js","sourcesContent":["import { applyCnpjMask } from '../core/cnpj/mask.js';\nimport { validateCnpj } from '../core/cnpj/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatCnpj(input: string): FormatResult {\n const result = validateCnpj(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyCnpjMask(result.value) };\n}\n\nexport function formatCnpjNumeric(input: string): FormatResult {\n return formatCnpj(input);\n}\n\nexport function formatCnpjAlphanumeric(input: string): FormatResult {\n return formatCnpj(input);\n}\n"]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// src/pncp-reference/data/metadata.json
|
|
2
|
+
var metadata_default = {
|
|
3
|
+
id: "pncp-reference",
|
|
4
|
+
nome: "PNCP domain reference tables",
|
|
5
|
+
fonte: "PNCP Cadastro API \u2014 static domain tables (Lei 14.133 ecosystem)",
|
|
6
|
+
endpoints: [
|
|
7
|
+
"https://pncp.gov.br/api/pncp/v1/modalidades",
|
|
8
|
+
"https://pncp.gov.br/api/pncp/v1/amparos-legais",
|
|
9
|
+
"https://pncp.gov.br/api/pncp/v1/modos-disputas",
|
|
10
|
+
"https://pncp.gov.br/api/pncp/v1/tipos-instrumentos-convocatorios",
|
|
11
|
+
"https://pncp.gov.br/api/pncp/v1/tipos-contratos",
|
|
12
|
+
"https://pncp.gov.br/api/pncp/v1/criterios-julgamentos",
|
|
13
|
+
"https://pncp.gov.br/api/pncp/v1/tipos-instrumentos-cobranca",
|
|
14
|
+
"https://pncp.gov.br/api/pncp/v1/fontes-orcamentarias"
|
|
15
|
+
],
|
|
16
|
+
capturadoEm: "2026-06-23",
|
|
17
|
+
atualizadoEm: "2026-06-23T19:08:24.455Z",
|
|
18
|
+
contagens: {
|
|
19
|
+
modalidades: 19,
|
|
20
|
+
"amparos-legais": 183,
|
|
21
|
+
"modos-disputa": 6,
|
|
22
|
+
"tipos-instrumentos-convocatorios": 5,
|
|
23
|
+
"tipos-contrato": 12,
|
|
24
|
+
"criterios-julgamento": 9,
|
|
25
|
+
"tipos-instrumentos-cobranca": 1,
|
|
26
|
+
"fontes-orcamentarias": 6
|
|
27
|
+
},
|
|
28
|
+
alteracoes: {
|
|
29
|
+
adicionados: 0,
|
|
30
|
+
removidos: 0,
|
|
31
|
+
alterados: 0,
|
|
32
|
+
comparadoCom: "2026-06-23"
|
|
33
|
+
},
|
|
34
|
+
verificacao: {
|
|
35
|
+
agendamento: "semanal",
|
|
36
|
+
workflow: "data-refresh-bot.yml",
|
|
37
|
+
ultimaExecucao: "2026-06-23T19:08:24.455Z"
|
|
38
|
+
},
|
|
39
|
+
documentacao: "docs/OFFICIAL-SOURCES.md#pncp-reference"
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export { metadata_default };
|
|
43
|
+
//# sourceMappingURL=chunk-FUYDR7JI.js.map
|
|
44
|
+
//# sourceMappingURL=chunk-FUYDR7JI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/pncp-reference/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,gBAAA;AAAA,EACN,IAAA,EAAQ,8BAAA;AAAA,EACR,KAAA,EAAS,sEAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,6CAAA;AAAA,IACA,gDAAA;AAAA,IACA,gDAAA;AAAA,IACA,kEAAA;AAAA,IACA,iDAAA;AAAA,IACA,uDAAA;AAAA,IACA,6DAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,WAAA,EAAe,EAAA;AAAA,IACf,gBAAA,EAAkB,GAAA;AAAA,IAClB,eAAA,EAAiB,CAAA;AAAA,IACjB,kCAAA,EAAoC,CAAA;AAAA,IACpC,gBAAA,EAAkB,EAAA;AAAA,IAClB,sBAAA,EAAwB,CAAA;AAAA,IACxB,6BAAA,EAA+B,CAAA;AAAA,IAC/B,sBAAA,EAAwB;AAAA,GAC1B;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,SAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-FUYDR7JI.js","sourcesContent":["{\n \"id\": \"pncp-reference\",\n \"nome\": \"PNCP domain reference tables\",\n \"fonte\": \"PNCP Cadastro API — static domain tables (Lei 14.133 ecosystem)\",\n \"endpoints\": [\n \"https://pncp.gov.br/api/pncp/v1/modalidades\",\n \"https://pncp.gov.br/api/pncp/v1/amparos-legais\",\n \"https://pncp.gov.br/api/pncp/v1/modos-disputas\",\n \"https://pncp.gov.br/api/pncp/v1/tipos-instrumentos-convocatorios\",\n \"https://pncp.gov.br/api/pncp/v1/tipos-contratos\",\n \"https://pncp.gov.br/api/pncp/v1/criterios-julgamentos\",\n \"https://pncp.gov.br/api/pncp/v1/tipos-instrumentos-cobranca\",\n \"https://pncp.gov.br/api/pncp/v1/fontes-orcamentarias\"\n ],\n \"capturadoEm\": \"2026-06-23\",\n \"atualizadoEm\": \"2026-06-23T19:08:24.455Z\",\n \"contagens\": {\n \"modalidades\": 19,\n \"amparos-legais\": 183,\n \"modos-disputa\": 6,\n \"tipos-instrumentos-convocatorios\": 5,\n \"tipos-contrato\": 12,\n \"criterios-julgamento\": 9,\n \"tipos-instrumentos-cobranca\": 1,\n \"fontes-orcamentarias\": 6\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-06-23\"\n },\n \"verificacao\": {\n \"agendamento\": \"semanal\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-23T19:08:24.455Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#pncp-reference\"\n}\n"]}
|