@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.
Files changed (225) hide show
  1. package/README.md +44 -15
  2. package/dist/aeroportos.d.ts +46 -0
  3. package/dist/aeroportos.js +4316 -0
  4. package/dist/aeroportos.js.map +1 -0
  5. package/dist/batch.d.ts +3 -3
  6. package/dist/batch.js +24 -22
  7. package/dist/boleto.d.ts +2 -2
  8. package/dist/boleto.js +5 -5
  9. package/dist/brcode.d.ts +2 -2
  10. package/dist/brcode.js +7 -7
  11. package/dist/cartao-credito.d.ts +2 -2
  12. package/dist/cartao-credito.js +3 -3
  13. package/dist/cep.d.ts +2 -2
  14. package/dist/cep.js +3 -3
  15. package/dist/cest.d.ts +44 -0
  16. package/dist/cest.js +8253 -0
  17. package/dist/cest.js.map +1 -0
  18. package/dist/{chunk-NT3TNF3R.js → chunk-24JBIV3A.js} +3 -3
  19. package/dist/{chunk-NT3TNF3R.js.map → chunk-24JBIV3A.js.map} +1 -1
  20. package/dist/{chunk-XHDRWM46.js → chunk-26MSDS43.js} +3 -3
  21. package/dist/{chunk-XHDRWM46.js.map → chunk-26MSDS43.js.map} +1 -1
  22. package/dist/{chunk-3LMDBXU6.js → chunk-2JSOXG2M.js} +3 -3
  23. package/dist/{chunk-3LMDBXU6.js.map → chunk-2JSOXG2M.js.map} +1 -1
  24. package/dist/{chunk-AU6TW3GH.js → chunk-3DLNIUBY.js} +5 -5
  25. package/dist/{chunk-AU6TW3GH.js.map → chunk-3DLNIUBY.js.map} +1 -1
  26. package/dist/{chunk-OOUEURR7.js → chunk-3JAYOBSG.js} +3 -3
  27. package/dist/{chunk-OOUEURR7.js.map → chunk-3JAYOBSG.js.map} +1 -1
  28. package/dist/chunk-3WXLMV7Q.js +3 -0
  29. package/dist/chunk-3WXLMV7Q.js.map +1 -0
  30. package/dist/chunk-475HS4CJ.js +30 -0
  31. package/dist/chunk-475HS4CJ.js.map +1 -0
  32. package/dist/{chunk-NUQSMT4Y.js → chunk-4NFEM2SU.js} +9 -3
  33. package/dist/chunk-4NFEM2SU.js.map +1 -0
  34. package/dist/chunk-6EF7GQRS.js +30 -0
  35. package/dist/chunk-6EF7GQRS.js.map +1 -0
  36. package/dist/{chunk-ZTDLGGYE.js → chunk-6VNCWSHA.js} +34 -17
  37. package/dist/chunk-6VNCWSHA.js.map +1 -0
  38. package/dist/{chunk-MZDCVTN6.js → chunk-72EZ2VUO.js} +4 -4
  39. package/dist/{chunk-MZDCVTN6.js.map → chunk-72EZ2VUO.js.map} +1 -1
  40. package/dist/chunk-7JCJGLA3.js +30 -0
  41. package/dist/chunk-7JCJGLA3.js.map +1 -0
  42. package/dist/{chunk-VKG7UEN5.js → chunk-A5UHVGRB.js} +3 -3
  43. package/dist/{chunk-VKG7UEN5.js.map → chunk-A5UHVGRB.js.map} +1 -1
  44. package/dist/{chunk-EN7PVDYB.js → chunk-C7WXL7UR.js} +4 -4
  45. package/dist/{chunk-EN7PVDYB.js.map → chunk-C7WXL7UR.js.map} +1 -1
  46. package/dist/{chunk-DYX5XSJ6.js → chunk-CGN5ST5W.js} +5 -3
  47. package/dist/{chunk-DYX5XSJ6.js.map → chunk-CGN5ST5W.js.map} +1 -1
  48. package/dist/{chunk-P6TOL5VY.js → chunk-CJKVA7VS.js} +3 -3
  49. package/dist/{chunk-P6TOL5VY.js.map → chunk-CJKVA7VS.js.map} +1 -1
  50. package/dist/{chunk-KGCLQ7QX.js → chunk-CNJ4DIYS.js} +3 -3
  51. package/dist/{chunk-KGCLQ7QX.js.map → chunk-CNJ4DIYS.js.map} +1 -1
  52. package/dist/{chunk-N6RQICAP.js → chunk-CYBWPBXJ.js} +4 -4
  53. package/dist/{chunk-N6RQICAP.js.map → chunk-CYBWPBXJ.js.map} +1 -1
  54. package/dist/{chunk-SDEJD2J7.js → chunk-DLXE3RNI.js} +3 -3
  55. package/dist/{chunk-SDEJD2J7.js.map → chunk-DLXE3RNI.js.map} +1 -1
  56. package/dist/chunk-DVA6QQUF.js +22 -0
  57. package/dist/chunk-DVA6QQUF.js.map +1 -0
  58. package/dist/{chunk-54UWHK5L.js → chunk-EGDZGSHA.js} +3 -3
  59. package/dist/{chunk-54UWHK5L.js.map → chunk-EGDZGSHA.js.map} +1 -1
  60. package/dist/chunk-EKOSTVIA.js +30 -0
  61. package/dist/chunk-EKOSTVIA.js.map +1 -0
  62. package/dist/{chunk-O3T7PUBI.js → chunk-F5OHOWZU.js} +3 -3
  63. package/dist/{chunk-O3T7PUBI.js.map → chunk-F5OHOWZU.js.map} +1 -1
  64. package/dist/chunk-F7IEPT22.js +30 -0
  65. package/dist/chunk-F7IEPT22.js.map +1 -0
  66. package/dist/{chunk-RMTHCPIV.js → chunk-FLZGOGER.js} +4 -4
  67. package/dist/{chunk-RMTHCPIV.js.map → chunk-FLZGOGER.js.map} +1 -1
  68. package/dist/chunk-FUYDR7JI.js +44 -0
  69. package/dist/chunk-FUYDR7JI.js.map +1 -0
  70. package/dist/chunk-G557DGIX.js +398 -0
  71. package/dist/chunk-G557DGIX.js.map +1 -0
  72. package/dist/{chunk-ITHT54NC.js → chunk-HZWERBZB.js} +37 -17
  73. package/dist/chunk-HZWERBZB.js.map +1 -0
  74. package/dist/{chunk-AO6UTQ4A.js → chunk-IJ2DAVSD.js} +3 -3
  75. package/dist/{chunk-AO6UTQ4A.js.map → chunk-IJ2DAVSD.js.map} +1 -1
  76. package/dist/chunk-ILKF7HP7.js +31 -0
  77. package/dist/chunk-ILKF7HP7.js.map +1 -0
  78. package/dist/{chunk-MAM4U3UR.js → chunk-IRERFIL5.js} +3 -3
  79. package/dist/{chunk-MAM4U3UR.js.map → chunk-IRERFIL5.js.map} +1 -1
  80. package/dist/{chunk-CSRBRKXY.js → chunk-ISMIJ5DH.js} +3 -3
  81. package/dist/{chunk-CSRBRKXY.js.map → chunk-ISMIJ5DH.js.map} +1 -1
  82. package/dist/{chunk-L7PF4KD6.js → chunk-LBAWZ4EV.js} +3 -3
  83. package/dist/{chunk-L7PF4KD6.js.map → chunk-LBAWZ4EV.js.map} +1 -1
  84. package/dist/{chunk-QK27VDVB.js → chunk-LCY6USO2.js} +35 -18
  85. package/dist/chunk-LCY6USO2.js.map +1 -0
  86. package/dist/{chunk-XWHGXSQV.js → chunk-LPGSPM53.js} +3 -3
  87. package/dist/{chunk-XWHGXSQV.js.map → chunk-LPGSPM53.js.map} +1 -1
  88. package/dist/{chunk-5EJAENH5.js → chunk-MDFK6L72.js} +3 -3
  89. package/dist/{chunk-5EJAENH5.js.map → chunk-MDFK6L72.js.map} +1 -1
  90. package/dist/chunk-NQIDHQ6U.js +3 -0
  91. package/dist/chunk-NQIDHQ6U.js.map +1 -0
  92. package/dist/chunk-NTVB7R3A.js +30 -0
  93. package/dist/chunk-NTVB7R3A.js.map +1 -0
  94. package/dist/chunk-O4AO4YWC.js +30 -0
  95. package/dist/chunk-O4AO4YWC.js.map +1 -0
  96. package/dist/{chunk-S4WWYHQM.js → chunk-OH4CXHFH.js} +13 -3
  97. package/dist/chunk-OH4CXHFH.js.map +1 -0
  98. package/dist/{chunk-B6A7VF4R.js → chunk-OWD47AWI.js} +3 -3
  99. package/dist/{chunk-B6A7VF4R.js.map → chunk-OWD47AWI.js.map} +1 -1
  100. package/dist/{chunk-QB7SZS2C.js → chunk-OY53JDPO.js} +40 -19
  101. package/dist/chunk-OY53JDPO.js.map +1 -0
  102. package/dist/{chunk-665E36SC.js → chunk-P3EJRH4P.js} +4 -4
  103. package/dist/{chunk-665E36SC.js.map → chunk-P3EJRH4P.js.map} +1 -1
  104. package/dist/{chunk-GWAYWBHN.js → chunk-PTZR6C7Y.js} +14 -6
  105. package/dist/chunk-PTZR6C7Y.js.map +1 -0
  106. package/dist/{chunk-E2EFGMWA.js → chunk-QSSKPIG5.js} +3 -3
  107. package/dist/{chunk-E2EFGMWA.js.map → chunk-QSSKPIG5.js.map} +1 -1
  108. package/dist/{chunk-FBARVLLP.js → chunk-RSJK46ZE.js} +3 -3
  109. package/dist/{chunk-FBARVLLP.js.map → chunk-RSJK46ZE.js.map} +1 -1
  110. package/dist/chunk-RWO34ORS.js +33 -0
  111. package/dist/chunk-RWO34ORS.js.map +1 -0
  112. package/dist/{chunk-JSNXKBZA.js → chunk-SH6K4PUU.js} +3 -3
  113. package/dist/{chunk-JSNXKBZA.js.map → chunk-SH6K4PUU.js.map} +1 -1
  114. package/dist/{chunk-EQV33L7H.js → chunk-T5NFIPTU.js} +3 -3
  115. package/dist/{chunk-EQV33L7H.js.map → chunk-T5NFIPTU.js.map} +1 -1
  116. package/dist/{chunk-CDNOUZEI.js → chunk-TAOFFAG3.js} +3 -3
  117. package/dist/{chunk-CDNOUZEI.js.map → chunk-TAOFFAG3.js.map} +1 -1
  118. package/dist/{chunk-YD5MPZWY.js → chunk-TTDHGQEC.js} +3 -3
  119. package/dist/{chunk-YD5MPZWY.js.map → chunk-TTDHGQEC.js.map} +1 -1
  120. package/dist/{chunk-JLCQ7MGC.js → chunk-ULNZHOMA.js} +3 -3
  121. package/dist/{chunk-JLCQ7MGC.js.map → chunk-ULNZHOMA.js.map} +1 -1
  122. package/dist/{chunk-KLONQL76.js → chunk-UTSZKJAL.js} +7 -7
  123. package/dist/{chunk-KLONQL76.js.map → chunk-UTSZKJAL.js.map} +1 -1
  124. package/dist/{chunk-ANWQBKGN.js → chunk-VDCITFZG.js} +3 -3
  125. package/dist/{chunk-ANWQBKGN.js.map → chunk-VDCITFZG.js.map} +1 -1
  126. package/dist/chunk-VE2XZSKP.js +150 -0
  127. package/dist/chunk-VE2XZSKP.js.map +1 -0
  128. package/dist/{chunk-NHFSEWO2.js → chunk-VJT3UGN2.js} +34 -19
  129. package/dist/chunk-VJT3UGN2.js.map +1 -0
  130. package/dist/{chunk-SKDMG3FK.js → chunk-W2K4RQ3M.js} +33 -33
  131. package/dist/{chunk-SKDMG3FK.js.map → chunk-W2K4RQ3M.js.map} +1 -1
  132. package/dist/{chunk-VSW3NBJQ.js → chunk-WAYYRZ2L.js} +3 -3
  133. package/dist/{chunk-VSW3NBJQ.js.map → chunk-WAYYRZ2L.js.map} +1 -1
  134. package/dist/{chunk-JKDU7QYP.js → chunk-Z7KH65RZ.js} +3 -3
  135. package/dist/{chunk-JKDU7QYP.js.map → chunk-Z7KH65RZ.js.map} +1 -1
  136. package/dist/chunk-ZWAYSR5K.js +30 -0
  137. package/dist/chunk-ZWAYSR5K.js.map +1 -0
  138. package/dist/cnh.d.ts +2 -2
  139. package/dist/cnh.js +3 -3
  140. package/dist/cnpj.d.ts +2 -2
  141. package/dist/cnpj.js +4 -4
  142. package/dist/compare.d.ts +3 -3
  143. package/dist/compare.js +26 -24
  144. package/dist/cpf.d.ts +2 -2
  145. package/dist/cpf.js +4 -4
  146. package/dist/data-catalog.js +33 -11
  147. package/dist/data-catalog.js.map +1 -1
  148. package/dist/detect.d.ts +2 -2
  149. package/dist/detect.js +22 -21
  150. package/dist/diff.d.ts +3 -3
  151. package/dist/diff.js +26 -24
  152. package/dist/generate.d.ts +1 -1
  153. package/dist/generate.js +35 -35
  154. package/dist/incoterms.d.ts +36 -0
  155. package/dist/incoterms.js +87 -0
  156. package/dist/incoterms.js.map +1 -0
  157. package/dist/{index-BEJFgDXj.d.ts → index-CJ5ACErT.d.ts} +2 -2
  158. package/dist/index.d.ts +8 -6
  159. package/dist/index.js +62 -57
  160. package/dist/index.js.map +1 -1
  161. package/dist/{inscricao-estadual-produtor-rural-BXFVQscj.d.ts → inscricao-estadual-produtor-rural-BNAyLQPY.d.ts} +1 -1
  162. package/dist/inscricao-estadual-produtor-rural.d.ts +2 -2
  163. package/dist/inscricao-estadual-produtor-rural.js +3 -3
  164. package/dist/inscricao-estadual.d.ts +3 -3
  165. package/dist/inscricao-estadual.js +4 -4
  166. package/dist/mask.d.ts +3 -3
  167. package/dist/mask.js +36 -33
  168. package/dist/moedas.d.ts +42 -0
  169. package/dist/moedas.js +977 -0
  170. package/dist/moedas.js.map +1 -0
  171. package/dist/natureza-juridica.d.ts +37 -0
  172. package/dist/natureza-juridica.js +398 -0
  173. package/dist/natureza-juridica.js.map +1 -0
  174. package/dist/nbs.d.ts +40 -0
  175. package/dist/nbs.js +3728 -0
  176. package/dist/nbs.js.map +1 -0
  177. package/dist/nfe-chave.d.ts +2 -2
  178. package/dist/nfe-chave.js +3 -3
  179. package/dist/paises-bacen.d.ts +35 -0
  180. package/dist/paises-bacen.js +1044 -0
  181. package/dist/paises-bacen.js.map +1 -0
  182. package/dist/pis-pasep.d.ts +2 -2
  183. package/dist/pis-pasep.js +3 -3
  184. package/dist/{pix-B4habHLG.d.ts → pix-QsM0lMas.d.ts} +1 -1
  185. package/dist/pix.d.ts +2 -2
  186. package/dist/pix.js +7 -7
  187. package/dist/placa.d.ts +2 -2
  188. package/dist/placa.js +3 -3
  189. package/dist/pncp-reference.d.ts +56 -0
  190. package/dist/pncp-reference.js +1560 -0
  191. package/dist/pncp-reference.js.map +1 -0
  192. package/dist/portos.d.ts +48 -0
  193. package/dist/portos.js +12094 -0
  194. package/dist/portos.js.map +1 -0
  195. package/dist/processo-judicial.d.ts +71 -0
  196. package/dist/processo-judicial.js +6 -0
  197. package/dist/processo-judicial.js.map +1 -0
  198. package/dist/renavam.d.ts +2 -2
  199. package/dist/renavam.js +3 -3
  200. package/dist/rg.d.ts +69 -0
  201. package/dist/rg.js +5 -0
  202. package/dist/rg.js.map +1 -0
  203. package/dist/sanitize.d.ts +2 -2
  204. package/dist/sanitize.js +21 -19
  205. package/dist/telefone.d.ts +2 -2
  206. package/dist/telefone.js +3 -3
  207. package/dist/titulo-eleitor.d.ts +2 -2
  208. package/dist/titulo-eleitor.js +3 -3
  209. package/dist/transparencia-snapshots.d.ts +61 -0
  210. package/dist/transparencia-snapshots.js +119 -0
  211. package/dist/transparencia-snapshots.js.map +1 -0
  212. package/dist/tse-municipios.d.ts +39 -0
  213. package/dist/tse-municipios.js +33469 -0
  214. package/dist/tse-municipios.js.map +1 -0
  215. package/dist/{types-MXifBcV5.d.ts → types-CQvCmvGu.d.ts} +2 -2
  216. package/dist/{validation-result-BaI2Xder.d.ts → validation-result-hfVg2-Mc.d.ts} +23 -3
  217. package/package.json +66 -1
  218. package/dist/chunk-GWAYWBHN.js.map +0 -1
  219. package/dist/chunk-ITHT54NC.js.map +0 -1
  220. package/dist/chunk-NHFSEWO2.js.map +0 -1
  221. package/dist/chunk-NUQSMT4Y.js.map +0 -1
  222. package/dist/chunk-QB7SZS2C.js.map +0 -1
  223. package/dist/chunk-QK27VDVB.js.map +0 -1
  224. package/dist/chunk-S4WWYHQM.js.map +0 -1
  225. package/dist/chunk-ZTDLGGYE.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { CPF_MASK_PATTERN } from './chunk-L7PF4KD6.js';
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-KGCLQ7QX.js.map
14
- //# sourceMappingURL=chunk-KGCLQ7QX.js.map
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-KGCLQ7QX.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
+ {"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-E2EFGMWA.js';
2
- import { brandCodigoBarras } from './chunk-NUQSMT4Y.js';
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-N6RQICAP.js.map
220
- //# sourceMappingURL=chunk-N6RQICAP.js.map
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":"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","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-P6TOL5VY.js';
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-SDEJD2J7.js.map
23
- //# sourceMappingURL=chunk-SDEJD2J7.js.map
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-SDEJD2J7.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"]}
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-CDNOUZEI.js';
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-54UWHK5L.js.map
14
- //# sourceMappingURL=chunk-54UWHK5L.js.map
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-54UWHK5L.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"]}
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-XHDRWM46.js';
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-O3T7PUBI.js.map
27
- //# sourceMappingURL=chunk-O3T7PUBI.js.map
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-O3T7PUBI.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"]}
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-CSRBRKXY.js';
2
- import { validateCnpj } from './chunk-FBARVLLP.js';
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-RMTHCPIV.js.map
21
- //# sourceMappingURL=chunk-RMTHCPIV.js.map
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-RMTHCPIV.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"]}
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"]}