@br-validators/core 1.6.2 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/README.md +26 -7
  2. package/dist/aeroportos.d.ts +1 -1
  3. package/dist/anp-combustiveis.d.ts +64 -0
  4. package/dist/anp-combustiveis.js +37816 -0
  5. package/dist/anp-combustiveis.js.map +1 -0
  6. package/dist/bancos.d.ts +1 -1
  7. package/dist/batch.d.ts +3 -3
  8. package/dist/batch.js +30 -28
  9. package/dist/boleto.d.ts +2 -2
  10. package/dist/boleto.js +5 -5
  11. package/dist/brcode.d.ts +2 -2
  12. package/dist/brcode.js +9 -9
  13. package/dist/cartao-credito.d.ts +2 -2
  14. package/dist/cartao-credito.js +3 -3
  15. package/dist/cbo.d.ts +1 -1
  16. package/dist/cbo.js +1 -1
  17. package/dist/cep.d.ts +3 -3
  18. package/dist/cep.js +5 -5
  19. package/dist/cest.d.ts +1 -1
  20. package/dist/cest.js +1 -1
  21. package/dist/cfop.d.ts +1 -1
  22. package/dist/cfop.js +1 -1
  23. package/dist/{chunk-FX6JEBWO.js → chunk-26HMLR4Y.js} +3 -3
  24. package/dist/{chunk-FX6JEBWO.js.map → chunk-26HMLR4Y.js.map} +1 -1
  25. package/dist/{chunk-LPGSPM53.js → chunk-2EYJMAE2.js} +3 -3
  26. package/dist/{chunk-LPGSPM53.js.map → chunk-2EYJMAE2.js.map} +1 -1
  27. package/dist/{chunk-L3IKYN3J.js → chunk-2FQOQMS6.js} +7 -7
  28. package/dist/{chunk-L3IKYN3J.js.map → chunk-2FQOQMS6.js.map} +1 -1
  29. package/dist/{chunk-QZNAGWZB.js → chunk-2HD6TA3O.js} +4 -4
  30. package/dist/{chunk-QZNAGWZB.js.map → chunk-2HD6TA3O.js.map} +1 -1
  31. package/dist/chunk-2NSBFMTP.js +125 -0
  32. package/dist/chunk-2NSBFMTP.js.map +1 -0
  33. package/dist/{chunk-VDCITFZG.js → chunk-2ZWBFVYY.js} +3 -3
  34. package/dist/{chunk-VDCITFZG.js.map → chunk-2ZWBFVYY.js.map} +1 -1
  35. package/dist/{chunk-EGDZGSHA.js → chunk-3EVLQVBC.js} +3 -3
  36. package/dist/{chunk-EGDZGSHA.js.map → chunk-3EVLQVBC.js.map} +1 -1
  37. package/dist/{chunk-BA4I3QL5.js → chunk-3ZIXLRXZ.js} +4 -3
  38. package/dist/chunk-3ZIXLRXZ.js.map +1 -0
  39. package/dist/{chunk-BUZTJ3KC.js → chunk-47PZ7WGA.js} +23 -19
  40. package/dist/chunk-47PZ7WGA.js.map +1 -0
  41. package/dist/{chunk-ISMIJ5DH.js → chunk-4T2ZBJFM.js} +3 -3
  42. package/dist/{chunk-ISMIJ5DH.js.map → chunk-4T2ZBJFM.js.map} +1 -1
  43. package/dist/chunk-5AQKUZ6R.js +35 -0
  44. package/dist/chunk-5AQKUZ6R.js.map +1 -0
  45. package/dist/{chunk-F5OHOWZU.js → chunk-5I6WYO5R.js} +3 -3
  46. package/dist/{chunk-F5OHOWZU.js.map → chunk-5I6WYO5R.js.map} +1 -1
  47. package/dist/{chunk-Q5IK2DV4.js → chunk-6PODNJTJ.js} +4 -4
  48. package/dist/{chunk-Q5IK2DV4.js.map → chunk-6PODNJTJ.js.map} +1 -1
  49. package/dist/{chunk-UTSZKJAL.js → chunk-7EMUKPPG.js} +8 -8
  50. package/dist/{chunk-UTSZKJAL.js.map → chunk-7EMUKPPG.js.map} +1 -1
  51. package/dist/{chunk-ULNZHOMA.js → chunk-AG3VELYX.js} +5 -14
  52. package/dist/chunk-AG3VELYX.js.map +1 -0
  53. package/dist/{chunk-BKF6CKUK.js → chunk-BBKNHH72.js} +7 -7
  54. package/dist/{chunk-BKF6CKUK.js.map → chunk-BBKNHH72.js.map} +1 -1
  55. package/dist/{chunk-OZ2VAF7L.js → chunk-BBYLFHZZ.js} +5 -5
  56. package/dist/{chunk-OZ2VAF7L.js.map → chunk-BBYLFHZZ.js.map} +1 -1
  57. package/dist/chunk-BG72VA7O.js +33 -0
  58. package/dist/chunk-BG72VA7O.js.map +1 -0
  59. package/dist/{chunk-XSYO3MVO.js → chunk-BMIYI2TC.js} +7 -7
  60. package/dist/{chunk-XSYO3MVO.js.map → chunk-BMIYI2TC.js.map} +1 -1
  61. package/dist/{chunk-D5POEOY7.js → chunk-BNM3RSDY.js} +24 -19
  62. package/dist/chunk-BNM3RSDY.js.map +1 -0
  63. package/dist/{chunk-6VJAOYIG.js → chunk-BSNVQQTV.js} +25 -20
  64. package/dist/chunk-BSNVQQTV.js.map +1 -0
  65. package/dist/chunk-BSSRVJ2C.js +14 -0
  66. package/dist/chunk-BSSRVJ2C.js.map +1 -0
  67. package/dist/{chunk-WJ6M5YKH.js → chunk-CQQDYYFS.js} +5 -5
  68. package/dist/{chunk-WJ6M5YKH.js.map → chunk-CQQDYYFS.js.map} +1 -1
  69. package/dist/{chunk-2AFEQOCJ.js → chunk-DAX5PVBJ.js} +10 -8
  70. package/dist/chunk-DAX5PVBJ.js.map +1 -0
  71. package/dist/{chunk-HHYQ3GXP.js → chunk-DFPIMLGD.js} +7 -7
  72. package/dist/{chunk-HHYQ3GXP.js.map → chunk-DFPIMLGD.js.map} +1 -1
  73. package/dist/{chunk-YN4M6XL2.js → chunk-DH7N2ZS6.js} +7 -7
  74. package/dist/{chunk-YN4M6XL2.js.map → chunk-DH7N2ZS6.js.map} +1 -1
  75. package/dist/{chunk-MDFK6L72.js → chunk-DMUWIPJR.js} +3 -3
  76. package/dist/{chunk-MDFK6L72.js.map → chunk-DMUWIPJR.js.map} +1 -1
  77. package/dist/{chunk-G557DGIX.js → chunk-E2BVDZKJ.js} +3 -3
  78. package/dist/{chunk-G557DGIX.js.map → chunk-E2BVDZKJ.js.map} +1 -1
  79. package/dist/{chunk-6WHDXMTW.js → chunk-EDJC6HIP.js} +3 -3
  80. package/dist/{chunk-6WHDXMTW.js.map → chunk-EDJC6HIP.js.map} +1 -1
  81. package/dist/{chunk-4NFEM2SU.js → chunk-EMZCVV5Y.js} +9 -3
  82. package/dist/chunk-EMZCVV5Y.js.map +1 -0
  83. package/dist/chunk-FI2JE6AS.js +15 -0
  84. package/dist/chunk-FI2JE6AS.js.map +1 -0
  85. package/dist/{chunk-A5UHVGRB.js → chunk-G4YT6X7N.js} +4 -4
  86. package/dist/{chunk-A5UHVGRB.js.map → chunk-G4YT6X7N.js.map} +1 -1
  87. package/dist/chunk-G65WTGYO.js +31 -0
  88. package/dist/chunk-G65WTGYO.js.map +1 -0
  89. package/dist/{chunk-ZJQ7DRH4.js → chunk-GFYWUMYH.js} +5 -5
  90. package/dist/{chunk-ZJQ7DRH4.js.map → chunk-GFYWUMYH.js.map} +1 -1
  91. package/dist/chunk-HIWHBRFG.js +30 -0
  92. package/dist/chunk-HIWHBRFG.js.map +1 -0
  93. package/dist/{chunk-U5SLA2ZP.js → chunk-HSLV626U.js} +7 -7
  94. package/dist/{chunk-U5SLA2ZP.js.map → chunk-HSLV626U.js.map} +1 -1
  95. package/dist/{chunk-BDHKGP3S.js → chunk-J3QGK6MX.js} +33 -33
  96. package/dist/{chunk-BDHKGP3S.js.map → chunk-J3QGK6MX.js.map} +1 -1
  97. package/dist/{chunk-IHSOANVC.js → chunk-KTP26VPJ.js} +7 -7
  98. package/dist/{chunk-IHSOANVC.js.map → chunk-KTP26VPJ.js.map} +1 -1
  99. package/dist/{chunk-P3EJRH4P.js → chunk-LXB5FIAQ.js} +4 -4
  100. package/dist/{chunk-P3EJRH4P.js.map → chunk-LXB5FIAQ.js.map} +1 -1
  101. package/dist/{chunk-PDGAMTBR.js → chunk-M3RBXFYG.js} +39 -20
  102. package/dist/chunk-M3RBXFYG.js.map +1 -0
  103. package/dist/{chunk-3DLNIUBY.js → chunk-M6VUQK73.js} +5 -5
  104. package/dist/{chunk-3DLNIUBY.js.map → chunk-M6VUQK73.js.map} +1 -1
  105. package/dist/{chunk-5423O35D.js → chunk-MAJPROT7.js} +7 -7
  106. package/dist/{chunk-5423O35D.js.map → chunk-MAJPROT7.js.map} +1 -1
  107. package/dist/{chunk-RSJK46ZE.js → chunk-MLUDCL3P.js} +4 -4
  108. package/dist/{chunk-RSJK46ZE.js.map → chunk-MLUDCL3P.js.map} +1 -1
  109. package/dist/{chunk-4COFDYBY.js → chunk-MZZNNXAB.js} +27 -21
  110. package/dist/chunk-MZZNNXAB.js.map +1 -0
  111. package/dist/{chunk-DVA6QQUF.js → chunk-O3HZW2GM.js} +3 -3
  112. package/dist/{chunk-DVA6QQUF.js.map → chunk-O3HZW2GM.js.map} +1 -1
  113. package/dist/{chunk-CNJ4DIYS.js → chunk-O7RJQUAJ.js} +3 -3
  114. package/dist/{chunk-CNJ4DIYS.js.map → chunk-O7RJQUAJ.js.map} +1 -1
  115. package/dist/{chunk-IJ2DAVSD.js → chunk-OM5ELPM6.js} +3 -3
  116. package/dist/{chunk-IJ2DAVSD.js.map → chunk-OM5ELPM6.js.map} +1 -1
  117. package/dist/chunk-OPFCKUFX.js +31 -0
  118. package/dist/chunk-OPFCKUFX.js.map +1 -0
  119. package/dist/{chunk-2JSOXG2M.js → chunk-P37C3MVF.js} +3 -3
  120. package/dist/{chunk-2JSOXG2M.js.map → chunk-P37C3MVF.js.map} +1 -1
  121. package/dist/chunk-P5BDKYBC.js +3 -0
  122. package/dist/chunk-P5BDKYBC.js.map +1 -0
  123. package/dist/{chunk-LBAWZ4EV.js → chunk-PUTVO6HG.js} +4 -4
  124. package/dist/{chunk-LBAWZ4EV.js.map → chunk-PUTVO6HG.js.map} +1 -1
  125. package/dist/{chunk-26MSDS43.js → chunk-Q2CFVQ2U.js} +4 -4
  126. package/dist/{chunk-26MSDS43.js.map → chunk-Q2CFVQ2U.js.map} +1 -1
  127. package/dist/{chunk-24JBIV3A.js → chunk-QKAXRXU5.js} +4 -4
  128. package/dist/{chunk-24JBIV3A.js.map → chunk-QKAXRXU5.js.map} +1 -1
  129. package/dist/{chunk-OWD47AWI.js → chunk-QZPKTG4A.js} +3 -3
  130. package/dist/{chunk-OWD47AWI.js.map → chunk-QZPKTG4A.js.map} +1 -1
  131. package/dist/{chunk-FLZGOGER.js → chunk-RNI5G42M.js} +4 -4
  132. package/dist/{chunk-FLZGOGER.js.map → chunk-RNI5G42M.js.map} +1 -1
  133. package/dist/{chunk-72EZ2VUO.js → chunk-ROU5ZHN7.js} +4 -4
  134. package/dist/{chunk-72EZ2VUO.js.map → chunk-ROU5ZHN7.js.map} +1 -1
  135. package/dist/{chunk-SH6K4PUU.js → chunk-RP5UWF2G.js} +3 -3
  136. package/dist/{chunk-SH6K4PUU.js.map → chunk-RP5UWF2G.js.map} +1 -1
  137. package/dist/{chunk-AED7KSBM.js → chunk-RRG2HJMY.js} +6 -6
  138. package/dist/{chunk-AED7KSBM.js.map → chunk-RRG2HJMY.js.map} +1 -1
  139. package/dist/{chunk-PR7NSNQG.js → chunk-RY2BSDOR.js} +4 -4
  140. package/dist/{chunk-PR7NSNQG.js.map → chunk-RY2BSDOR.js.map} +1 -1
  141. package/dist/{chunk-QSSKPIG5.js → chunk-SIMI5XYE.js} +3 -3
  142. package/dist/{chunk-QSSKPIG5.js.map → chunk-SIMI5XYE.js.map} +1 -1
  143. package/dist/{chunk-TTDHGQEC.js → chunk-SQO7BO3Y.js} +3 -3
  144. package/dist/{chunk-TTDHGQEC.js.map → chunk-SQO7BO3Y.js.map} +1 -1
  145. package/dist/{chunk-T5NFIPTU.js → chunk-SXPLYH4N.js} +3 -3
  146. package/dist/{chunk-T5NFIPTU.js.map → chunk-SXPLYH4N.js.map} +1 -1
  147. package/dist/{chunk-EEFQYVLF.js → chunk-UANHHEWY.js} +4 -4
  148. package/dist/{chunk-EEFQYVLF.js.map → chunk-UANHHEWY.js.map} +1 -1
  149. package/dist/{chunk-MF47DACR.js → chunk-UGSA7FSW.js} +7 -7
  150. package/dist/{chunk-MF47DACR.js.map → chunk-UGSA7FSW.js.map} +1 -1
  151. package/dist/{chunk-TAOFFAG3.js → chunk-UJXGDUKJ.js} +3 -3
  152. package/dist/{chunk-TAOFFAG3.js.map → chunk-UJXGDUKJ.js.map} +1 -1
  153. package/dist/chunk-VXHJLWMA.js +115 -0
  154. package/dist/chunk-VXHJLWMA.js.map +1 -0
  155. package/dist/chunk-W64OQYC4.js +13 -0
  156. package/dist/chunk-W64OQYC4.js.map +1 -0
  157. package/dist/{chunk-C7WXL7UR.js → chunk-WAVBQYPE.js} +4 -4
  158. package/dist/{chunk-C7WXL7UR.js.map → chunk-WAVBQYPE.js.map} +1 -1
  159. package/dist/{chunk-CYBWPBXJ.js → chunk-WE6RG6OC.js} +4 -4
  160. package/dist/{chunk-CYBWPBXJ.js.map → chunk-WE6RG6OC.js.map} +1 -1
  161. package/dist/{chunk-Z7KH65RZ.js → chunk-WKDCI3NI.js} +3 -3
  162. package/dist/{chunk-Z7KH65RZ.js.map → chunk-WKDCI3NI.js.map} +1 -1
  163. package/dist/chunk-XFKSJRWM.js +14 -0
  164. package/dist/chunk-XFKSJRWM.js.map +1 -0
  165. package/dist/chunk-XHHJTKSP.js +33 -0
  166. package/dist/chunk-XHHJTKSP.js.map +1 -0
  167. package/dist/chunk-XVT5QOAL.js +30 -0
  168. package/dist/chunk-XVT5QOAL.js.map +1 -0
  169. package/dist/{chunk-VE2XZSKP.js → chunk-YA7RWTAE.js} +3 -3
  170. package/dist/{chunk-VE2XZSKP.js.map → chunk-YA7RWTAE.js.map} +1 -1
  171. package/dist/chunk-YAHKWOSP.js +35 -0
  172. package/dist/chunk-YAHKWOSP.js.map +1 -0
  173. package/dist/{chunk-G4OYYXVP.js → chunk-YJBKWUCE.js} +4 -3
  174. package/dist/chunk-YJBKWUCE.js.map +1 -0
  175. package/dist/cnaes.d.ts +4 -2
  176. package/dist/cnaes.js +3 -2
  177. package/dist/cnaes.js.map +1 -1
  178. package/dist/cnh.d.ts +2 -2
  179. package/dist/cnh.js +5 -5
  180. package/dist/cnis.d.ts +50 -0
  181. package/dist/cnis.js +7 -0
  182. package/dist/cnis.js.map +1 -0
  183. package/dist/cnpj-motivos.d.ts +52 -0
  184. package/dist/cnpj-motivos.js +292 -0
  185. package/dist/cnpj-motivos.js.map +1 -0
  186. package/dist/cnpj.d.ts +2 -2
  187. package/dist/cnpj.js +5 -5
  188. package/dist/compare.d.ts +3 -3
  189. package/dist/compare.js +32 -30
  190. package/dist/cpf.d.ts +2 -2
  191. package/dist/cpf.js +5 -5
  192. package/dist/cst.d.ts +73 -0
  193. package/dist/cst.js +482 -0
  194. package/dist/cst.js.map +1 -0
  195. package/dist/data-catalog.d.ts +2 -2
  196. package/dist/data-catalog.js +45 -29
  197. package/dist/data-catalog.js.map +1 -1
  198. package/dist/detect.d.ts +2 -2
  199. package/dist/detect.js +28 -26
  200. package/dist/diff.d.ts +3 -3
  201. package/dist/diff.js +32 -30
  202. package/dist/ean.d.ts +43 -0
  203. package/dist/ean.js +6 -0
  204. package/dist/ean.js.map +1 -0
  205. package/dist/esocial.d.ts +45 -0
  206. package/dist/esocial.js +387 -0
  207. package/dist/esocial.js.map +1 -0
  208. package/dist/feriados.d.ts +1 -1
  209. package/dist/generate.d.ts +1 -1
  210. package/dist/generate.js +41 -39
  211. package/dist/ibge.d.ts +34 -2
  212. package/dist/ibge.js +109 -1
  213. package/dist/ibge.js.map +1 -1
  214. package/dist/ibpt.d.ts +74 -0
  215. package/dist/ibpt.js +166 -0
  216. package/dist/ibpt.js.map +1 -0
  217. package/dist/incoterms.d.ts +1 -1
  218. package/dist/incoterms.js +1 -1
  219. package/dist/{index-CJ5ACErT.d.ts → index-BmoilwS2.d.ts} +2 -2
  220. package/dist/index.d.ts +11 -9
  221. package/dist/index.js +77 -67
  222. package/dist/index.js.map +1 -1
  223. package/dist/{inscricao-estadual-produtor-rural-BNAyLQPY.d.ts → inscricao-estadual-produtor-rural-Hfq6jN1n.d.ts} +1 -1
  224. package/dist/inscricao-estadual-produtor-rural.d.ts +2 -2
  225. package/dist/inscricao-estadual-produtor-rural.js +3 -3
  226. package/dist/inscricao-estadual.d.ts +3 -3
  227. package/dist/inscricao-estadual.js +4 -4
  228. package/dist/lc116.d.ts +42 -0
  229. package/dist/lc116.js +866 -0
  230. package/dist/lc116.js.map +1 -0
  231. package/dist/mask.d.ts +3 -3
  232. package/dist/mask.js +44 -40
  233. package/dist/moedas.d.ts +1 -1
  234. package/dist/moedas.js +1 -1
  235. package/dist/natureza-juridica.d.ts +1 -1
  236. package/dist/natureza-juridica.js +1 -1
  237. package/dist/nbs.d.ts +1 -1
  238. package/dist/nbs.js +1 -1
  239. package/dist/ncm.d.ts +1 -1
  240. package/dist/ncm.js +1 -1
  241. package/dist/nfe-chave.d.ts +2 -2
  242. package/dist/nfe-chave.js +3 -3
  243. package/dist/paises-bacen.d.ts +1 -1
  244. package/dist/paises-bacen.js +1 -1
  245. package/dist/pis-pasep.d.ts +2 -2
  246. package/dist/pis-pasep.js +5 -3
  247. package/dist/{pix-QsM0lMas.d.ts → pix-BcPQzXRx.d.ts} +1 -1
  248. package/dist/pix.d.ts +2 -2
  249. package/dist/pix.js +9 -9
  250. package/dist/placa.d.ts +2 -2
  251. package/dist/placa.js +4 -4
  252. package/dist/pncp-reference.d.ts +1 -1
  253. package/dist/pncp-reference.js +1 -1
  254. package/dist/portos.d.ts +1 -1
  255. package/dist/portos.js +1 -1
  256. package/dist/processo-judicial.d.ts +2 -2
  257. package/dist/processo-judicial.js +3 -3
  258. package/dist/ptax.d.ts +53 -0
  259. package/dist/ptax.js +485 -0
  260. package/dist/ptax.js.map +1 -0
  261. package/dist/renavam.d.ts +2 -2
  262. package/dist/renavam.js +5 -5
  263. package/dist/rg.d.ts +2 -2
  264. package/dist/rg.js +2 -2
  265. package/dist/sanitize.d.ts +2 -2
  266. package/dist/sanitize.js +27 -25
  267. package/dist/simples-nacional.d.ts +67 -0
  268. package/dist/simples-nacional.js +178 -0
  269. package/dist/simples-nacional.js.map +1 -0
  270. package/dist/telefone.d.ts +3 -3
  271. package/dist/telefone.js +4 -4
  272. package/dist/titulo-eleitor.d.ts +2 -2
  273. package/dist/titulo-eleitor.js +5 -5
  274. package/dist/transparencia-snapshots.d.ts +1 -1
  275. package/dist/transparencia-snapshots.js +3 -3
  276. package/dist/transparencia-snapshots.js.map +1 -1
  277. package/dist/tse-municipios.d.ts +1 -1
  278. package/dist/{types-CCKLomYy.d.ts → types-CnePu8im.d.ts} +1 -1
  279. package/dist/{types-CQvCmvGu.d.ts → types-DTtrW1Km.d.ts} +2 -2
  280. package/dist/{validation-result-hfVg2-Mc.d.ts → validation-result-Rb7C0_xj.d.ts} +30 -2
  281. package/package.json +52 -2
  282. package/dist/chunk-2AFEQOCJ.js.map +0 -1
  283. package/dist/chunk-4COFDYBY.js.map +0 -1
  284. package/dist/chunk-4NFEM2SU.js.map +0 -1
  285. package/dist/chunk-6VJAOYIG.js.map +0 -1
  286. package/dist/chunk-BA4I3QL5.js.map +0 -1
  287. package/dist/chunk-BUZTJ3KC.js.map +0 -1
  288. package/dist/chunk-D5POEOY7.js.map +0 -1
  289. package/dist/chunk-G4OYYXVP.js.map +0 -1
  290. package/dist/chunk-PDGAMTBR.js.map +0 -1
  291. package/dist/chunk-ULNZHOMA.js.map +0 -1
  292. package/dist/chunk-WAYYRZ2L.js +0 -23
  293. package/dist/chunk-WAYYRZ2L.js.map +0 -1
@@ -6,25 +6,25 @@ var metadata_default = {
6
6
  endpoints: [
7
7
  "https://www.confaz.fazenda.gov.br/legislacao/convenios/2018/CV142_18"
8
8
  ],
9
- capturadoEm: "2026-06-23",
10
- atualizadoEm: "2026-06-23T18:40:24.666Z",
9
+ capturadoEm: "2026-06-24",
10
+ atualizadoEm: "2026-06-24T15:42:59.705Z",
11
11
  contagens: {
12
12
  cest: 1018
13
13
  },
14
14
  alteracoes: {
15
- adicionados: 1018,
15
+ adicionados: 0,
16
16
  removidos: 0,
17
17
  alterados: 0,
18
- comparadoCom: null
18
+ comparadoCom: "2026-06-23"
19
19
  },
20
20
  verificacao: {
21
21
  agendamento: "diario",
22
22
  workflow: "data-refresh-bot.yml",
23
- ultimaExecucao: "2026-06-23T18:40:24.666Z"
23
+ ultimaExecucao: "2026-06-24T15:42:59.705Z"
24
24
  },
25
25
  documentacao: "docs/OFFICIAL-SOURCES.md#cest"
26
26
  };
27
27
 
28
28
  export { metadata_default };
29
- //# sourceMappingURL=chunk-MF47DACR.js.map
30
- //# sourceMappingURL=chunk-MF47DACR.js.map
29
+ //# sourceMappingURL=chunk-UGSA7FSW.js.map
30
+ //# sourceMappingURL=chunk-UGSA7FSW.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cest/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,MAAA;AAAA,EACN,IAAA,EAAQ,aAAA;AAAA,EACR,KAAA,EAAS,0DAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,IAAA,EAAQ;AAAA,GACV;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,IAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-MF47DACR.js","sourcesContent":["{\n \"id\": \"cest\",\n \"nome\": \"CONFAZ CEST\",\n \"fonte\": \"CONFAZ Convênio ICMS 142/2018 — Anexos II a XXVI\",\n \"endpoints\": [\n \"https://www.confaz.fazenda.gov.br/legislacao/convenios/2018/CV142_18\"\n ],\n \"capturadoEm\": \"2026-06-23\",\n \"atualizadoEm\": \"2026-06-23T18:40:24.666Z\",\n \"contagens\": {\n \"cest\": 1018\n },\n \"alteracoes\": {\n \"adicionados\": 1018,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": null\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-23T18:40:24.666Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#cest\"\n}\n"]}
1
+ {"version":3,"sources":["../src/cest/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,MAAA;AAAA,EACN,IAAA,EAAQ,aAAA;AAAA,EACR,KAAA,EAAS,0DAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,IAAA,EAAQ;AAAA,GACV;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,CAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-UGSA7FSW.js","sourcesContent":["{\n \"id\": \"cest\",\n \"nome\": \"CONFAZ CEST\",\n \"fonte\": \"CONFAZ Convênio ICMS 142/2018 — Anexos II a XXVI\",\n \"endpoints\": [\n \"https://www.confaz.fazenda.gov.br/legislacao/convenios/2018/CV142_18\"\n ],\n \"capturadoEm\": \"2026-06-24\",\n \"atualizadoEm\": \"2026-06-24T15:42:59.705Z\",\n \"contagens\": {\n \"cest\": 1018\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-06-23\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-24T15:42:59.705Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#cest\"\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { brandInscricaoEstadualProdutorRural } from './chunk-4NFEM2SU.js';
1
+ import { brandInscricaoEstadualProdutorRural } from './chunk-EMZCVV5Y.js';
2
2
 
3
3
  // src/core/inscricao-estadual/constants.ts
4
4
  var IE_SUPPORTED_UFS = [
@@ -456,5 +456,5 @@ function applyIeDfMask(stripped) {
456
456
  }
457
457
 
458
458
  export { IE_AC_PREFIX, IE_AL_PREFIX, IE_AP_PREFIX, IE_DF_DV1_WEIGHTS, IE_DF_DV2_WEIGHTS, IE_DF_GOLDEN, IE_DF_GOLDEN_MASKED, IE_DF_LENGTH, IE_DF_OFFICIAL_SOURCE_URL, IE_DF_PREFIX, IE_GO_PREFIXES, IE_MA_PREFIX, IE_MS_PREFIX, IE_MT_CANONICAL_LENGTH, IE_MT_GOLDEN_CANONICAL, IE_MT_GOLDEN_LEGACY, IE_MT_LEGACY_LENGTH, IE_MT_OFFICIAL_SOURCE_URL, IE_MT_PREFIX, IE_OFFICIAL_SOURCE_URLS, IE_PA_PREFIX, IE_RN_PREFIX, IE_RR_PREFIX, IE_SP_DV1_WEIGHTS, IE_SP_DV2_WEIGHTS, IE_SP_GOLDEN, IE_SP_GOLDEN_MASKED, IE_SP_LENGTH, IE_SP_OFFICIAL_SOURCE_URL, IE_SP_RURAL_GOLDEN, IE_SP_RURAL_GOLDEN_MASKED, IE_SP_RURAL_LENGTH, IE_SP_RURAL_OFFICIAL_SOURCE_URL, IE_SUPPORTED_UFS, IE_TO_LEGACY_PREFIXES, applyIeDfMask, applyIeSpMask, applyIeSpRuralMask, computeIeAcCheckDigit, computeIeAlCheckDigit, computeIeAmCheckDigit, computeIeApCheckDigit, computeIeBaCheckDigit, computeIeBaModule, computeIeCeCheckDigit, computeIeCyclicMod11CheckDigit, computeIeDfCheckDigit, computeIeGoCheckDigit, computeIeMgFirstCheckDigit, computeIeMgSecondCheckDigit, computeIeMtCheckDigit, computeIePeCheckDigit, computeIePrStyleCheckDigit, computeIeRoCheckDigit, computeIeRrCheckDigit, computeIeSpCheckDigit, computeIeToCheckDigit, getIeProdutorRuralOfficialSourceUrl, isSpRuralIeInput, isValidIeProdutorRural, stripIeSpRural, validateIeProdutorRural, validateIeSpRural };
459
- //# sourceMappingURL=chunk-TAOFFAG3.js.map
460
- //# sourceMappingURL=chunk-TAOFFAG3.js.map
459
+ //# sourceMappingURL=chunk-UJXGDUKJ.js.map
460
+ //# sourceMappingURL=chunk-UJXGDUKJ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/inscricao-estadual/constants.ts","../src/core/inscricao-estadual/modulo-ie.ts","../src/core/inscricao-estadual/sp-rural.ts","../src/core/inscricao-estadual/validate-produtor-rural.ts","../src/core/inscricao-estadual/mask.ts"],"names":["failure"],"mappings":";;;AAQO,IAAM,gBAAA,GAAsC;AAAA,EACjD,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EACxE,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM;AAChF;AAEO,IAAM,uBAAA,GAA4D;AAAA,EACvE,EAAA,EAAI,0BAAA;AAAA,EACJ,EAAA,EAAI,qCAAA;AAAA,EACJ,EAAA,EAAI,8BAAA;AAAA,EACJ,EAAA,EAAI,8BAAA;AAAA,EACJ,EAAA,EAAI,6EAAA;AAAA,EACJ,EAAA,EAAI,8BAAA;AAAA,EACJ,EAAA,EAAI,wCAAA;AAAA,EACJ,EAAA,EAAI,kCAAA;AAAA,EACJ,EAAA,EAAI,iDAAA;AAAA,EACJ,EAAA,EAAI,8BAAA;AAAA,EACJ,EAAA,EAAI,+EAAA;AAAA,EACJ,EAAA,EAAI,8BAAA;AAAA,EACJ,EAAA,EAAI,sJAAA;AAAA,EACJ,EAAA,EAAI,6BAAA;AAAA,EACJ,EAAA,EAAI,gCAAA;AAAA,EACJ,EAAA,EAAI,8BAAA;AAAA,EACJ,EAAA,EAAI,8BAAA;AAAA,EACJ,EAAA,EAAI,iEAAA;AAAA,EACJ,EAAA,EAAI,4CAAA;AAAA,EACJ,EAAA,EAAI,4BAAA;AAAA,EACJ,EAAA,EAAI,8BAAA;AAAA,EACJ,EAAA,EAAI,8BAAA;AAAA,EACJ,EAAA,EAAI,8BAAA;AAAA,EACJ,EAAA,EAAI,4BAAA;AAAA,EACJ,EAAA,EAAI,8BAAA;AAAA,EACJ,EAAA,EAAI,0FAAA;AAAA,EACJ,EAAA,EAAI;AACN;AAIO,IAAM,YAAA,GAAe;AACrB,IAAM,YAAA,GAAe;AAErB,IAAM,YAAA,GAAe;AACrB,IAAM,YAAA,GAAe;AACrB,IAAM,cAAA,GAAiB,CAAC,IAAA,EAAM,IAAA,EAAM,MAAM,IAAI;AAC9C,IAAM,YAAA,GAAe;AACrB,IAAM,YAAA,GAAe;AACrB,IAAM,YAAA,GAAe;AACrB,IAAM,YAAA,GAAe;AACrB,IAAM,YAAA,GAAe;AACrB,IAAM,YAAA,GAAe;AACrB,IAAM,qBAAA,GAAwB,CAAC,IAAA,EAAM,IAAA,EAAM,MAAM,IAAI;AAErD,IAAM,YAAA,GAAe;AACrB,IAAM,iBAAA,GAAoB,CAAC,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,EAAE;AAClD,IAAM,iBAAA,GAAoB,CAAC,CAAA,EAAG,CAAA,EAAG,EAAA,EAAI,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAC;AAC3D,IAAM,YAAA,GAAe;AACrB,IAAM,mBAAA,GAAsB;AAC5B,IAAM,4BAA4B,uBAAA,CAAwB;AAE1D,IAAM,kBAAA,GAAqB;AAC3B,IAAM,kBAAA,GAAqB;AAC3B,IAAM,yBAAA,GAA4B;AAClC,IAAM,+BAAA,GAAkC;AAExC,IAAM,sBAAA,GAAyB;AAC/B,IAAM,mBAAA,GAAsB;AAE5B,IAAM,mBAAA,GAAsB;AAC5B,IAAM,sBAAA,GAAyB;AAC/B,IAAM,4BAA4B,uBAAA,CAAwB;AAE1D,IAAM,YAAA,GAAe;AACrB,IAAM,iBAAA,GAAoB,CAAC,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAC;AAC1D,IAAM,iBAAA,GAAoB,CAAC,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,GAAG,CAAC;AAC7D,IAAM,YAAA,GAAe;AACrB,IAAM,mBAAA,GAAsB;AAC5B,IAAM,4BAA4B,uBAAA,CAAwB;;;AC/E1D,SAAS,qBAAA,CAAsB,QAAgB,OAAA,EAAoC;AACxF,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,OAAA,CAAQ,QAAQ,CAAA,EAAA,EAAK;AACvC,IAAA,GAAA,IAAO,OAAO,MAAA,CAAO,CAAC,CAAC,CAAA,GAAI,QAAQ,CAAC,CAAA;AAAA,EACtC;AACA,EAAA,MAAM,YAAY,GAAA,GAAM,EAAA;AACxB,EAAA,OAAO,SAAA,KAAc,EAAA,GAAK,CAAA,GAAI,SAAA,GAAY,EAAA;AAC5C;AAEO,SAAS,sBAAsB,QAAA,EAA0B;AAC9D,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,MAAM,OAAA,GAAU,CAAC,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAC,CAAA;AAC7C,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,EAAA,EAAI,CAAA,EAAA,EAAK;AAC3B,IAAA,GAAA,IAAO,OAAO,QAAA,CAAS,CAAC,CAAC,CAAA,GAAI,QAAQ,CAAC,CAAA;AAAA,EACxC;AACA,EAAA,MAAM,YAAY,GAAA,GAAM,EAAA;AACxB,EAAA,OAAO,SAAA,IAAa,CAAA,GAAI,CAAA,GAAI,EAAA,GAAK,SAAA;AACnC;AAEO,SAAS,sBACd,MAAA,EACA,OAAA,EACA,UAAA,GAAa,KAAA,EACb,MAAM,CAAA,EACE;AACR,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,MAAM,UAAA,GAAa,UAAA,GAAa,EAAA,GAAK,MAAA,CAAO,MAAA;AAC5C,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,UAAA,EAAY,CAAA,EAAA,EAAK;AACnC,IAAA,GAAA,IAAO,OAAO,MAAA,CAAO,CAAC,CAAC,CAAA,GAAI,QAAQ,CAAC,CAAA;AAAA,EACtC;AACA,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,GAAA,IAAO,GAAA,GAAM,QAAQ,EAAE,CAAA;AAAA,EACzB;AACA,EAAA,MAAM,YAAY,GAAA,GAAM,EAAA;AACxB,EAAA,OAAO,SAAA,IAAa,CAAA,GAAI,CAAA,GAAI,EAAA,GAAK,SAAA;AACnC;AAGO,SAAS,sBAAsB,KAAA,EAAuB;AAC3D,EAAA,IAAI,MAAA,GAAS,CAAA;AACb,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,EAAA,EAAK;AAC1B,IAAA,GAAA,IAAO,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAA,GAAI,MAAA;AAC1B,IAAA,MAAA,EAAA;AAAA,EACF;AACA,EAAA,MAAM,OAAO,GAAA,GAAM,EAAA;AACnB,EAAA,IAAI,QAAQ,EAAA,GAAK,IAAA;AACjB,EAAA,IAAI,SAAS,EAAA,EAAI;AACf,IAAA,KAAA,GAAQ,CAAA;AAAA,EACV;AACA,EAAA,OAAO,KAAA;AACT;AAGO,SAAS,sBAAsB,KAAA,EAAuB;AAC3D,EAAA,IAAI,MAAA,GAAS,CAAA;AACb,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,EAAA,EAAK;AAC1B,IAAA,GAAA,IAAO,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAA,GAAI,MAAA;AAC1B,IAAA,MAAA,EAAA;AAAA,EACF;AACA,EAAA,MAAM,UAAU,GAAA,GAAM,EAAA;AACtB,EAAA,IAAI,QAAQ,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,OAAA,GAAU,EAAE,CAAA,GAAI,EAAA;AACjD,EAAA,IAAI,SAAS,EAAA,EAAI;AACf,IAAA,KAAA,GAAQ,CAAA;AAAA,EACV;AACA,EAAA,OAAO,KAAA;AACT;AAGO,SAAS,sBAAsB,KAAA,EAAuB;AAC3D,EAAA,IAAI,MAAA,GAAS,CAAA;AACb,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,EAAA,EAAK;AAC1B,IAAA,GAAA,IAAO,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAA,GAAI,MAAA;AAC1B,IAAA,MAAA,EAAA;AAAA,EACF;AACA,EAAA,IAAI,MAAM,EAAA,EAAI;AACZ,IAAA,OAAO,EAAA,GAAK,GAAA;AAAA,EACd;AACA,EAAA,MAAM,YAAY,GAAA,GAAM,EAAA;AACxB,EAAA,IAAI,QAAQ,EAAA,GAAK,SAAA;AACjB,EAAA,IAAI,SAAS,EAAA,EAAI;AACf,IAAA,KAAA,GAAQ,CAAA;AAAA,EACV;AACA,EAAA,OAAO,KAAA;AACT;AAGO,SAAS,2BAA2B,IAAA,EAAsB;AAC/D,EAAA,IAAI,MAAA,GAAS,KAAK,MAAA,GAAS,CAAA;AAC3B,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACpC,IAAA,GAAA,IAAO,MAAA,CAAO,IAAA,CAAK,CAAC,CAAC,CAAA,GAAI,MAAA;AACzB,IAAA,MAAA,EAAA;AACA,IAAA,IAAI,WAAW,CAAA,EAAG;AAChB,MAAA,MAAA,GAAS,CAAA;AAAA,IACX;AAAA,EACF;AACA,EAAA,MAAM,OAAO,GAAA,GAAM,EAAA;AACnB,EAAA,IAAI,QAAQ,EAAA,GAAK,IAAA;AACjB,EAAA,IAAI,SAAS,EAAA,EAAI;AACf,IAAA,KAAA,GAAQ,CAAA;AAAA,EACV;AACA,EAAA,OAAO,KAAA;AACT;AAGO,SAAS,sBAAsB,IAAA,EAAsB;AAC1D,EAAA,IAAI,MAAA,GAAS,KAAK,MAAA,GAAS,CAAA;AAC3B,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACpC,IAAA,GAAA,IAAO,MAAA,CAAO,IAAA,CAAK,CAAC,CAAC,CAAA,GAAI,MAAA;AACzB,IAAA,MAAA,EAAA;AACA,IAAA,IAAI,WAAW,CAAA,EAAG;AAChB,MAAA,MAAA,GAAS,CAAA;AAAA,IACX;AAAA,EACF;AACA,EAAA,MAAM,OAAO,GAAA,GAAM,EAAA;AACnB,EAAA,IAAI,QAAQ,EAAA,GAAK,IAAA;AACjB,EAAA,IAAI,SAAS,EAAA,EAAI;AACf,IAAA,KAAA,GAAQ,CAAA;AAAA,EACV;AACA,EAAA,OAAO,KAAA;AACT;AAGO,SAAS,kBAAkB,EAAA,EAAoB;AACpD,EAAA,MAAM,QAAA,GAAW,EAAA,CAAG,MAAA,KAAW,CAAA,GAAI,CAAA,GAAI,CAAA;AACvC,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,EAAA,CAAG,QAAQ,CAAC,CAAA;AACpC,EAAA,MAAM,WAAA,GAAc,CAAC,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA,EAAG,CAAA,EAAG,GAAG,CAAC,CAAA;AACxC,EAAA,OAAO,WAAA,CAAY,QAAA,CAAS,QAAQ,CAAA,GAAI,EAAA,GAAK,EAAA;AAC/C;AAEO,SAAS,qBAAA,CAAsB,MAAc,GAAA,EAAqB;AACvE,EAAA,IAAI,MAAA,GAAS,KAAK,MAAA,GAAS,CAAA;AAC3B,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACpC,IAAA,GAAA,IAAO,MAAA,CAAO,IAAA,CAAK,CAAC,CAAC,CAAA,GAAI,MAAA;AACzB,IAAA,MAAA,EAAA;AAAA,EACF;AACA,EAAA,MAAM,OAAO,GAAA,GAAM,GAAA;AACnB,EAAA,IAAI,QAAQ,GAAA,GAAM,IAAA;AAClB,EAAA,IAAI,SAAS,EAAA,EAAI;AACf,IAAA,KAAA,GAAQ,CAAA;AAAA,EACV;AACA,EAAA,OAAO,KAAA;AACT;AAGO,SAAS,sBAAsB,IAAA,EAAsB;AAC1D,EAAA,IAAI,MAAA,GAAS,KAAK,MAAA,GAAS,CAAA;AAC3B,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACpC,IAAA,GAAA,IAAO,MAAA,CAAO,IAAA,CAAK,CAAC,CAAC,CAAA,GAAI,MAAA;AACzB,IAAA,MAAA,EAAA;AAAA,EACF;AACA,EAAA,MAAM,OAAO,GAAA,GAAM,EAAA;AACnB,EAAA,IAAI,QAAQ,EAAA,GAAK,IAAA;AACjB,EAAA,IAAI,SAAS,EAAA,EAAI;AACf,IAAA,KAAA,GAAQ,CAAA;AAAA,EACV;AACA,EAAA,OAAO,KAAA;AACT;AAGO,SAAS,8BAAA,CACd,IAAA,EACA,WAAA,EACA,WAAA,EACQ;AACR,EAAA,IAAI,MAAA,GAAS,WAAA;AACb,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACpC,IAAA,GAAA,IAAO,MAAA,CAAO,IAAA,CAAK,CAAC,CAAC,CAAA,GAAI,MAAA;AACzB,IAAA,MAAA,EAAA;AACA,IAAA,IAAI,WAAW,CAAA,EAAG;AAChB,MAAA,MAAA,GAAS,WAAA;AAAA,IACX;AAAA,EACF;AACA,EAAA,MAAM,OAAO,GAAA,GAAM,EAAA;AACnB,EAAA,IAAI,QAAQ,EAAA,GAAK,IAAA;AACjB,EAAA,IAAI,SAAS,EAAA,EAAI;AACf,IAAA,KAAA,GAAQ,CAAA;AAAA,EACV;AACA,EAAA,OAAO,KAAA;AACT;AAGO,SAAS,sBAAsB,IAAA,EAAsB;AAC1D,EAAA,IAAI,MAAA,GAAS,CAAA;AACb,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACpC,IAAA,GAAA,IAAO,MAAA,CAAO,IAAA,CAAK,CAAC,CAAC,CAAA,GAAI,MAAA;AACzB,IAAA,MAAA,EAAA;AACA,IAAA,IAAI,WAAW,CAAA,EAAG;AAChB,MAAA,MAAA,GAAS,CAAA;AAAA,IACX;AAAA,EACF;AACA,EAAA,MAAM,OAAO,GAAA,GAAM,EAAA;AACnB,EAAA,IAAI,QAAQ,EAAA,GAAK,IAAA;AACjB,EAAA,IAAI,SAAS,EAAA,EAAI;AACf,IAAA,KAAA,IAAS,EAAA;AAAA,EACX;AACA,EAAA,OAAO,KAAA;AACT;AAGO,SAAS,sBAAsB,KAAA,EAAuB;AAC3D,EAAA,IAAI,MAAA,GAAS,CAAA;AACb,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,EAAA,EAAK;AAC1B,IAAA,GAAA,IAAO,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAA,GAAI,MAAA;AAC1B,IAAA,MAAA,EAAA;AAAA,EACF;AACA,EAAA,MAAM,OAAO,GAAA,GAAM,EAAA;AACnB,EAAA,IAAI,QAAQ,EAAA,GAAK,IAAA;AACjB,EAAA,MAAM,OAAA,GAAU,OAAO,KAAK,CAAA;AAC5B,EAAA,IAAI,SAAS,EAAA,EAAI;AACf,IAAA,IAAI,KAAA,KAAU,EAAA,IAAM,OAAA,IAAW,QAAA,IAAY,WAAW,QAAA,EAAU;AAC9D,MAAA,KAAA,GAAQ,CAAA;AAAA,IACV,CAAA,MAAO;AACL,MAAA,KAAA,GAAQ,CAAA;AAAA,IACV;AAAA,EACF;AACA,EAAA,OAAO,KAAA;AACT;AAGO,SAAS,sBAAsB,KAAA,EAAuB;AAC3D,EAAA,MAAM,OAAA,GAAU,OAAO,KAAK,CAAA;AAC5B,EAAA,IAAI,CAAA,GAAI,CAAA;AACR,EAAA,IAAI,CAAA,GAAI,CAAA;AACR,EAAA,IAAI,OAAA,IAAW,OAAA,IAAW,OAAA,IAAW,MAAA,EAAS;AAC5C,IAAA,CAAA,GAAI,CAAA;AACJ,IAAA,CAAA,GAAI,CAAA;AAAA,EACN,CAAA,MAAA,IAAW,OAAA,IAAW,OAAA,IAAW,OAAA,IAAW,OAAA,EAAS;AACnD,IAAA,CAAA,GAAI,CAAA;AACJ,IAAA,CAAA,GAAI,CAAA;AAAA,EACN;AACA,EAAA,IAAI,MAAA,GAAS,CAAA;AACb,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,EAAA,EAAK;AAC1B,IAAA,GAAA,IAAO,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAA,GAAI,MAAA;AAC1B,IAAA,MAAA,EAAA;AAAA,EACF;AACA,EAAA,IAAI,KAAA,GAAQ,KAAM,GAAA,GAAM,EAAA;AACxB,EAAA,IAAI,UAAU,EAAA,EAAI;AAChB,IAAA,KAAA,GAAQ,CAAA;AAAA,EACV,CAAA,MAAA,IAAW,UAAU,EAAA,EAAI;AACvB,IAAA,KAAA,GAAQ,CAAA;AAAA,EACV;AACA,EAAA,OAAO,KAAA;AACT;AAGO,SAAS,sBAAsB,KAAA,EAAuB;AAC3D,EAAA,IAAI,MAAA,GAAS,CAAA;AACb,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,EAAA,EAAK;AAC1B,IAAA,GAAA,IAAO,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAA,GAAI,MAAA;AAC1B,IAAA,MAAA,EAAA;AAAA,EACF;AACA,EAAA,OAAO,GAAA,GAAM,CAAA;AACf;AAGO,SAAS,sBAAsB,IAAA,EAAsB;AAC1D,EAAA,IAAI,MAAA,GAAS,CAAA;AACb,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACpC,IAAA,GAAA,IAAO,MAAA,CAAO,IAAA,CAAK,CAAC,CAAC,CAAA,GAAI,MAAA;AACzB,IAAA,MAAA,EAAA;AAAA,EACF;AACA,EAAA,MAAM,OAAO,GAAA,GAAM,EAAA;AACnB,EAAA,IAAI,OAAO,CAAA,EAAG;AACZ,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,EAAA,GAAK,IAAA;AACd;AAGO,SAAS,2BAA2B,MAAA,EAAwB;AACjE,EAAA,MAAM,YAAA,GAAe,CAAA,EAAG,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAC7D,EAAA,IAAI,WAAA,GAAc,EAAA;AAClB,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,YAAA,CAAa,QAAQ,CAAA,EAAA,EAAK;AAC5C,IAAA,MAAM,CAAA,GAAA,CAAK,CAAA,GAAI,CAAA,IAAK,CAAA,KAAM,IAAI,CAAA,GAAI,CAAA;AAClC,IAAA,WAAA,IAAA,CAAgB,OAAO,YAAA,CAAa,CAAC,CAAC,CAAA,GAAI,GAAG,QAAA,EAAS;AAAA,EACxD;AACA,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,WAAA,CAAY,QAAQ,CAAA,EAAA,EAAK;AAC3C,IAAA,GAAA,IAAO,MAAA,CAAO,WAAA,CAAY,CAAC,CAAC,CAAA;AAAA,EAC9B;AACA,EAAA,MAAM,YAAY,MAAA,CAAO,GAAA,CAAI,UAAS,CAAE,KAAA,CAAM,EAAE,CAAC,CAAA;AACjD,EAAA,OAAO,SAAA,KAAc,CAAA,GAAI,CAAA,GAAI,EAAA,GAAK,SAAA;AACpC;AAGO,SAAS,4BAA4B,MAAA,EAAwB;AAClE,EAAA,IAAI,MAAA,GAAS,CAAA;AACb,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,MAAA,CAAO,QAAQ,CAAA,EAAA,EAAK;AACtC,IAAA,GAAA,IAAO,MAAA,CAAO,MAAA,CAAO,CAAC,CAAC,CAAA,GAAI,MAAA;AAC3B,IAAA,MAAA,EAAA;AACA,IAAA,IAAI,WAAW,CAAA,EAAG;AAChB,MAAA,MAAA,GAAS,EAAA;AAAA,IACX;AAAA,EACF;AACA,EAAA,MAAM,OAAO,GAAA,GAAM,EAAA;AACnB,EAAA,IAAI,QAAQ,EAAA,GAAK,IAAA;AACjB,EAAA,IAAI,SAAS,EAAA,EAAI;AACf,IAAA,KAAA,GAAQ,CAAA;AAAA,EACV;AACA,EAAA,OAAO,KAAA;AACT;;;AClTA,IAAM,qBAAA,GAAwB,kBAAA;AAE9B,SAAS,OAAA,CAAQ,MAA4B,OAAA,EAA+B;AAC1E,EAAA,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,IAAA,EAAM,OAAA,EAAS,IAAI,IAAA,EAAK;AAC9C;AAEO,SAAS,iBAAiB,KAAA,EAAwB;AACvD,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,KAAA,CAAM,IAAA,EAAM,CAAA;AAClC;AAEO,SAAS,eAAe,KAAA,EAAuB;AACpD,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,IAAA,EAAK,CAAE,WAAA,EAAY;AACzC,EAAA,MAAM,MAAA,GAAS,QAAQ,OAAA,CAAQ,MAAA,EAAQ,EAAE,CAAA,CAAE,OAAA,CAAQ,OAAO,EAAE,CAAA;AAC5D,EAAA,OAAO,IAAI,MAAM,CAAA,CAAA;AACnB;AAEO,SAAS,kBAAkB,KAAA,EAAgD;AAChF,EAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAC3B,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,eAAe,OAAA,EAAS,wDAAA,EAAoD,IAAI,IAAA,EAAK;AAAA,EACjH;AAEA,EAAA,IAAI,CAAC,OAAA,CAAQ,IAAA,CAAK,OAAO,CAAA,EAAG;AAC1B,IAAA,OAAO,OAAA,CAAQ,qBAAqB,8DAAwD,CAAA;AAAA,EAC9F;AAEA,EAAA,IAAI,CAAC,qBAAA,CAAsB,IAAA,CAAK,OAAO,CAAA,EAAG;AACxC,IAAA,OAAO,OAAA,CAAQ,qBAAqB,wEAAkE,CAAA;AAAA,EACxG;AAEA,EAAA,MAAM,QAAA,GAAW,eAAe,OAAO,CAAA;AACvC,EAAA,IAAI,QAAA,CAAS,WAAW,kBAAA,EAAoB;AAC1C,IAAA,OAAO,OAAA;AAAA,MACL,gBAAA;AAAA,MACA,wDAAkD,kBAAkB,CAAA,+BAAA;AAAA,KACtE;AAAA,EACF;AAEA,EAAA,MAAM,OAAA,GAAU,QAAA,CAAS,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA;AACnC,EAAA,MAAM,UAAA,GAAa,qBAAA,CAAsB,OAAA,EAAS,iBAAiB,CAAA;AACnE,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,QAAA,CAAS,MAAA,CAAO,CAAC,CAAC,CAAA;AAE1C,EAAA,IAAI,aAAa,UAAA,EAAY;AAC3B,IAAA,OAAO,OAAA,CAAQ,uBAAuB,mEAA6D,CAAA;AAAA,EACrG;AAEA,EAAA,OAAO;AAAA,IACL,EAAA,EAAI,IAAA;AAAA,IACJ,KAAA,EAAO,oCAAoC,QAAQ,CAAA;AAAA,IACnD,EAAA,EAAI,IAAA;AAAA,IACJ,MAAA,EAAQ;AAAA,GACV;AACF;;;ACtDA,SAASA,QAAAA,CAAQ,IAAA,EAA4B,OAAA,EAAiB,EAAA,EAA0B;AACtF,EAAA,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,IAAA,EAAM,SAAS,EAAA,EAAG;AACxC;AAEO,SAAS,mCAAA,GAA8C;AAC5D,EAAA,OAAO,+BAAA;AACT;AAEO,SAAS,sBAAA,CAAuB,IAAY,KAAA,EAAwB;AACzE,EAAA,OAAO,uBAAA,CAAwB,EAAA,EAAI,KAAK,CAAA,CAAE,EAAA;AAC5C;AAEO,SAAS,uBAAA,CAAwB,IAAY,KAAA,EAAgD;AAClG,EAAA,IAAI,OAAO,IAAA,EAAM;AACf,IAAA,OAAOA,QAAAA;AAAA,MACL,oBAAA;AAAA,MACA,0HAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO,kBAAkB,KAAK,CAAA;AAChC;;;AC7BO,SAAS,cAAc,QAAA,EAA0B;AACtD,EAAA,IAAI,QAAA,CAAS,WAAW,YAAA,EAAc;AACpC,IAAA,MAAM,IAAI,MAAM,iDAAiD,CAAA;AAAA,EACnE;AACA,EAAA,OAAO,CAAA,EAAG,SAAS,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,QAAA,CAAS,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,QAAA,CAAS,MAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,QAAA,CAAS,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AACrG;AAEO,SAAS,mBAAmB,QAAA,EAA0B;AAC3D,EAAA,IAAI,SAAS,MAAA,KAAW,kBAAA,IAAsB,CAAC,QAAA,CAAS,UAAA,CAAW,GAAG,CAAA,EAAG;AACvE,IAAA,MAAM,IAAI,MAAM,oFAAoF,CAAA;AAAA,EACtG;AACA,EAAA,MAAM,IAAA,GAAO,QAAA,CAAS,KAAA,CAAM,CAAC,CAAA;AAC7B,EAAA,OAAO,CAAA,EAAA,EAAK,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,MAAA,CAAO,CAAC,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AACjE;AAEO,SAAS,cAAc,QAAA,EAA0B;AACtD,EAAA,IAAI,QAAA,CAAS,WAAW,YAAA,EAAc;AACpC,IAAA,MAAM,IAAI,MAAM,iDAAiD,CAAA;AAAA,EACnE;AACA,EAAA,OAAO,CAAA,EAAG,SAAS,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,QAAA,CAAS,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,QAAA,CAAS,MAAM,CAAA,EAAG,EAAE,CAAC,CAAA,CAAA,EAAI,QAAA,CAAS,KAAA,CAAM,EAAE,CAAC,CAAA,CAAA;AACvG","file":"chunk-TAOFFAG3.js","sourcesContent":["/**\n * Inscrição Estadual — per-UF constants (27 UFs).\n * @see docs/IE-STATE-ALGORITHMS.md\n */\nimport type { UfCode } from '../../types/validation-result.js';\n\nexport type { UfCode };\n\nexport const IE_SUPPORTED_UFS: readonly UfCode[] = [\n 'AC', 'AL', 'AM', 'AP', 'BA', 'CE', 'DF', 'ES', 'GO', 'MA', 'MG', 'MS', 'MT',\n 'PA', 'PB', 'PE', 'PI', 'PR', 'RJ', 'RN', 'RO', 'RR', 'RS', 'SC', 'SE', 'SP', 'TO',\n];\n\nexport const IE_OFFICIAL_SOURCE_URLS: Readonly<Record<UfCode, string>> = {\n AC: 'https://sefaz.ac.gov.br/',\n AL: 'https://www.sefaz.al.gov.br/calculo',\n AM: 'https://www.sefaz.am.gov.br/',\n AP: 'https://www.sefaz.ap.gov.br/',\n BA: 'https://www.sefaz.ba.gov.br/inspetoria-eletronica/icms/cadastro/calculo-dv/',\n CE: 'https://www.sefaz.ce.gov.br/',\n DF: 'https://www.receita.fazenda.df.gov.br/',\n ES: 'https://sitenet.es.gov.br/sefaz/',\n GO: 'http://www.sefaz.go.gov.br/ServicosAFA/ece.html',\n MA: 'https://www.sefaz.ma.gov.br/',\n MG: 'https://www.fazenda.mg.gov.br/empresas/Cadastro/cadastro/consultapublica.html',\n MS: 'https://www.sefaz.ms.gov.br/',\n MT: 'https://app1.sefaz.mt.gov.br/Sistema/legislacao/legislacaotribut.nsf/709f9c981a9d9f468425671300482be0/2217ddcf7a9b7cea03258c6c007324ba?OpenDocument=',\n PA: 'https://www.sefa.pa.gov.br/',\n PB: 'https://www.receita.pb.gov.br/',\n PE: 'https://www.sefaz.pe.gov.br/',\n PI: 'https://www.sefaz.pi.gov.br/',\n PR: 'https://www.fazenda.pr.gov.br/Pagina/calculo-digito-verificador',\n RJ: 'https://portal.fazenda.rj.gov.br/cadastro/',\n RN: 'https://www.set.rn.gov.br/',\n RO: 'https://www.sefin.ro.gov.br/',\n RR: 'https://www.sefaz.rr.gov.br/',\n RS: 'https://www.sefaz.rs.gov.br/',\n SC: 'https://sat.sef.sc.gov.br/',\n SE: 'https://www.sefaz.se.gov.br/',\n SP: 'https://portal.fazenda.sp.gov.br/servicos/icms/Paginas/sintegra-rotina-consistencia.aspx',\n TO: 'https://www.sefaz.to.gov.br/',\n};\n\nexport const IE_OFFICIAL_SOURCE_URL = 'docs/IE-STATE-ALGORITHMS.md';\n\nexport const IE_AC_PREFIX = '01';\nexport const IE_AL_PREFIX = '24';\nexport const IE_AM_PREFIX = '04';\nexport const IE_AP_PREFIX = '03';\nexport const IE_DF_PREFIX = '07';\nexport const IE_GO_PREFIXES = ['10', '11', '15', '20'] as const;\nexport const IE_MA_PREFIX = '12';\nexport const IE_MS_PREFIX = '28';\nexport const IE_MT_PREFIX = '13';\nexport const IE_PA_PREFIX = '15';\nexport const IE_RN_PREFIX = '20';\nexport const IE_RR_PREFIX = '24';\nexport const IE_TO_LEGACY_PREFIXES = ['01', '02', '03', '99'] as const;\n\nexport const IE_SP_LENGTH = 12;\nexport const IE_SP_DV1_WEIGHTS = [1, 3, 4, 5, 6, 7, 8, 10] as const;\nexport const IE_SP_DV2_WEIGHTS = [3, 2, 10, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const IE_SP_GOLDEN = '110042490114';\nexport const IE_SP_GOLDEN_MASKED = '110.042.490.114';\nexport const IE_SP_OFFICIAL_SOURCE_URL = IE_OFFICIAL_SOURCE_URLS.SP;\n\nexport const IE_SP_RURAL_LENGTH = 13;\nexport const IE_SP_RURAL_GOLDEN = 'P011004243002';\nexport const IE_SP_RURAL_GOLDEN_MASKED = 'P-01100424.3/002';\nexport const IE_SP_RURAL_OFFICIAL_SOURCE_URL = 'http://www.sintegra.gov.br/Cad_Estados/cad_SP.html';\n\nexport const IE_MT_CANONICAL_LENGTH = 9;\nexport const IE_MT_LEGACY_LENGTH = 11;\nexport const IE_MT_DV_WEIGHTS = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const IE_MT_GOLDEN_LEGACY = '00130000019';\nexport const IE_MT_GOLDEN_CANONICAL = '130000019';\nexport const IE_MT_OFFICIAL_SOURCE_URL = IE_OFFICIAL_SOURCE_URLS.MT;\n\nexport const IE_DF_LENGTH = 13;\nexport const IE_DF_DV1_WEIGHTS = [4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const IE_DF_DV2_WEIGHTS = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const IE_DF_GOLDEN = '0730000100109';\nexport const IE_DF_GOLDEN_MASKED = '073.00001.001-09';\nexport const IE_DF_OFFICIAL_SOURCE_URL = IE_OFFICIAL_SOURCE_URLS.DF;\n","/**\n * Shared modulo helpers for IE check digits.\n */\n\nexport function computeIeSpCheckDigit(digits: string, weights: readonly number[]): number {\n let sum = 0;\n for (let i = 0; i < weights.length; i++) {\n sum += Number(digits[i]) * weights[i];\n }\n const remainder = sum % 11;\n return remainder === 10 ? 0 : remainder % 10;\n}\n\nexport function computeIeMtCheckDigit(digits10: string): number {\n let sum = 0;\n const weights = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n for (let i = 0; i < 10; i++) {\n sum += Number(digits10[i]) * weights[i];\n }\n const remainder = sum % 11;\n return remainder <= 1 ? 0 : 11 - remainder;\n}\n\nexport function computeIeDfCheckDigit(\n digits: string,\n weights: readonly number[],\n includeDv1 = false,\n dv1 = 0,\n): number {\n let sum = 0;\n const digitCount = includeDv1 ? 11 : digits.length;\n for (let i = 0; i < digitCount; i++) {\n sum += Number(digits[i]) * weights[i];\n }\n if (includeDv1) {\n sum += dv1 * weights[11];\n }\n const remainder = sum % 11;\n return remainder <= 1 ? 0 : 11 - remainder;\n}\n\n/** CE / SC / SE / PB / PI — weights 9..2 on 8 body digits. */\nexport function computeIeCeCheckDigit(body8: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** AL — product×10 mod 11. */\nexport function computeIeAlCheckDigit(body8: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n const product = sum * 10;\n let digit = product - Math.floor(product / 11) * 11;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** AM — descending weights with special remainder rule. */\nexport function computeIeAmCheckDigit(body8: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n if (sum < 11) {\n return 11 - sum;\n }\n const remainder = sum % 11;\n let digit = 11 - remainder;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** PR / AC style — mod11, weights cycle 2..7 from right. */\nexport function computeIePrStyleCheckDigit(body: string): number {\n let weight = body.length - 5;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = 7;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** AC — weights cycle 9..2 from left. */\nexport function computeIeAcCheckDigit(body: string): number {\n let weight = body.length - 7;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = 9;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** BA — mod10 or mod11 by reference digit. */\nexport function computeIeBaModule(ie: string): number {\n const refIndex = ie.length === 9 ? 1 : 0;\n const refDigit = Number(ie[refIndex]);\n const mod10Digits = [0, 1, 2, 3, 4, 5, 8];\n return mod10Digits.includes(refDigit) ? 10 : 11;\n}\n\nexport function computeIeBaCheckDigit(body: string, mod: number): number {\n let weight = body.length + 1;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n }\n const rest = sum % mod;\n let digit = mod - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** PE — dual DV, weights length+1..2. */\nexport function computeIePeCheckDigit(body: string): number {\n let weight = body.length + 1;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** RJ / RS / RO — cyclic descending weights. */\nexport function computeIeCyclicMod11CheckDigit(\n body: string,\n startWeight: number,\n resetWeight: number,\n): number {\n let weight = startWeight;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = resetWeight;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** RO — cyclic weights 6..9, subtract 10 when digit >= 10. */\nexport function computeIeRoCheckDigit(body: string): number {\n let weight = 6;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = 9;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit -= 10;\n }\n return digit;\n}\n\n/** GO — mod11 with special range override. */\nexport function computeIeGoCheckDigit(body8: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n const bodyInt = Number(body8);\n if (digit >= 10) {\n if (digit === 11 && bodyInt >= 10103105 && bodyInt <= 10119997) {\n digit = 1;\n } else {\n digit = 0;\n }\n }\n return digit;\n}\n\n/** AP — prefix 03 with range-based p/d constants. */\nexport function computeIeApCheckDigit(body8: string): number {\n const bodyInt = Number(body8);\n let p = 0;\n let d = 0;\n if (bodyInt >= 3000001 && bodyInt <= 3017000) {\n p = 5;\n d = 0;\n } else if (bodyInt >= 3017001 && bodyInt <= 3019022) {\n p = 9;\n d = 1;\n }\n let weight = 9;\n let sum = p;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n let digit = 11 - (sum % 11);\n if (digit === 10) {\n digit = 0;\n } else if (digit === 11) {\n digit = d;\n }\n return digit;\n}\n\n/** RR — mod9, ascending weights 1..8. */\nexport function computeIeRrCheckDigit(body8: string): number {\n let weight = 1;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight++;\n }\n return sum % 9;\n}\n\n/** TO — mod11, rest < 2 → DV 0. */\nexport function computeIeToCheckDigit(body: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n }\n const rest = sum % 11;\n if (rest < 2) {\n return 0;\n }\n return 11 - rest;\n}\n\n/** MG — first DV via digit-sum on alternating products. */\nexport function computeIeMgFirstCheckDigit(body11: string): number {\n const bodyWithZero = `${body11.slice(0, 3)}0${body11.slice(3)}`;\n let weightedSum = '';\n for (let i = 0; i < bodyWithZero.length; i++) {\n const w = (i + 1) % 2 === 0 ? 2 : 1;\n weightedSum += (Number(bodyWithZero[i]) * w).toString();\n }\n let sum = 0;\n for (let i = 0; i < weightedSum.length; i++) {\n sum += Number(weightedSum[i]);\n }\n const lastDigit = Number(sum.toString().slice(-1));\n return lastDigit === 0 ? 0 : 10 - lastDigit;\n}\n\n/** MG — second DV, weights 3..11 cycling. */\nexport function computeIeMgSecondCheckDigit(body12: string): number {\n let weight = 3;\n let sum = 0;\n for (let i = 0; i < body12.length; i++) {\n sum += Number(body12[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = 11;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n","/**\n * São Paulo produtor rural IE — Regra II (SINTEGRA cad_SP.html Bloco II).\n * @see BR-IE-SP-RURAL-001\n * @see http://www.sintegra.gov.br/Cad_Estados/cad_SP.html\n */\nimport type { IeProdutorRuralValidationResult } from '../../types/validation-result.js';\nimport { brandInscricaoEstadualProdutorRural } from '../../types/validation-result.js';\nimport { IE_SP_DV1_WEIGHTS, IE_SP_RURAL_LENGTH } from './constants.js';\nimport { computeIeSpCheckDigit } from './modulo-ie.js';\n\ntype FailedResult = Extract<IeProdutorRuralValidationResult, { ok: false }>;\n\nconst SP_RURAL_MASK_PATTERN = /^[Pp0-9.\\-\\s/]+$/;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, uf: 'SP' };\n}\n\nexport function isSpRuralIeInput(input: string): boolean {\n return /^[Pp]/.test(input.trim());\n}\n\nexport function stripIeSpRural(input: string): string {\n const trimmed = input.trim().toUpperCase();\n const digits = trimmed.replace(/^[P]/, '').replace(/\\D/g, '');\n return `P${digits}`;\n}\n\nexport function validateIeSpRural(input: string): IeProdutorRuralValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Inscrição Estadual produtor rural input is empty', uf: 'SP' };\n }\n\n if (!/^[Pp]/.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'SP produtor rural Inscrição Estadual must start with P');\n }\n\n if (!SP_RURAL_MASK_PATTERN.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'SP produtor rural Inscrição Estadual contains invalid characters');\n }\n\n const stripped = stripIeSpRural(trimmed);\n if (stripped.length !== IE_SP_RURAL_LENGTH) {\n return failure(\n 'INVALID_LENGTH',\n `SP produtor rural Inscrição Estadual must have ${IE_SP_RURAL_LENGTH} characters after normalization`,\n );\n }\n\n const dvInput = stripped.slice(1, 9);\n const expectedDv = computeIeSpCheckDigit(dvInput, IE_SP_DV1_WEIGHTS);\n const actualDv = Number(stripped.charAt(9));\n\n if (actualDv !== expectedDv) {\n return failure('INVALID_CHECK_DIGIT', 'SP produtor rural Inscrição Estadual check digit is invalid');\n }\n\n return {\n ok: true,\n value: brandInscricaoEstadualProdutorRural(stripped),\n uf: 'SP',\n format: 'inscricao-estadual-produtor-rural',\n };\n}\n","/**\n * Inscrição Estadual produtor rural — SP Regra II only.\n * @see http://www.sintegra.gov.br/Cad_Estados/cad_SP.html\n */\nimport type { IeProdutorRuralValidationResult, UfCode } from '../../types/validation-result.js';\nimport { IE_SP_RURAL_OFFICIAL_SOURCE_URL } from './constants.js';\nimport { validateIeSpRural } from './sp-rural.js';\n\ntype FailedResult = Extract<IeProdutorRuralValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string, uf: UfCode): FailedResult {\n return { ok: false, code, message, uf };\n}\n\nexport function getIeProdutorRuralOfficialSourceUrl(): string {\n return IE_SP_RURAL_OFFICIAL_SOURCE_URL;\n}\n\nexport function isValidIeProdutorRural(uf: UfCode, input: string): boolean {\n return validateIeProdutorRural(uf, input).ok;\n}\n\nexport function validateIeProdutorRural(uf: UfCode, input: string): IeProdutorRuralValidationResult {\n if (uf !== 'SP') {\n return failure(\n 'UNSUPPORTED_FORMAT',\n 'Produtor rural Inscrição Estadual validation is supported for SP only; use validateInscricaoEstadual for other UFs',\n uf,\n );\n }\n return validateIeSpRural(input);\n}\n","import { IE_DF_LENGTH, IE_SP_LENGTH, IE_SP_RURAL_LENGTH } from './constants.js';\n\nexport function applyIeSpMask(stripped: string): string {\n if (stripped.length !== IE_SP_LENGTH) {\n throw new Error('SP IE must have exactly 12 digits to apply mask');\n }\n return `${stripped.slice(0, 3)}.${stripped.slice(3, 6)}.${stripped.slice(6, 9)}.${stripped.slice(9)}`;\n}\n\nexport function applyIeSpRuralMask(stripped: string): string {\n if (stripped.length !== IE_SP_RURAL_LENGTH || !stripped.startsWith('P')) {\n throw new Error('SP produtor rural IE must have exactly 13 characters starting with P to apply mask');\n }\n const body = stripped.slice(1);\n return `P-${body.slice(0, 8)}.${body.charAt(8)}/${body.slice(9)}`;\n}\n\nexport function applyIeDfMask(stripped: string): string {\n if (stripped.length !== IE_DF_LENGTH) {\n throw new Error('DF IE must have exactly 13 digits to apply mask');\n }\n return `${stripped.slice(0, 3)}.${stripped.slice(3, 8)}.${stripped.slice(8, 11)}-${stripped.slice(11)}`;\n}\n"]}
1
+ {"version":3,"sources":["../src/core/inscricao-estadual/constants.ts","../src/core/inscricao-estadual/modulo-ie.ts","../src/core/inscricao-estadual/sp-rural.ts","../src/core/inscricao-estadual/validate-produtor-rural.ts","../src/core/inscricao-estadual/mask.ts"],"names":["failure"],"mappings":"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","file":"chunk-UJXGDUKJ.js","sourcesContent":["/**\n * Inscrição Estadual — per-UF constants (27 UFs).\n * @see docs/IE-STATE-ALGORITHMS.md\n */\nimport type { UfCode } from '../../types/validation-result.js';\n\nexport type { UfCode };\n\nexport const IE_SUPPORTED_UFS: readonly UfCode[] = [\n 'AC', 'AL', 'AM', 'AP', 'BA', 'CE', 'DF', 'ES', 'GO', 'MA', 'MG', 'MS', 'MT',\n 'PA', 'PB', 'PE', 'PI', 'PR', 'RJ', 'RN', 'RO', 'RR', 'RS', 'SC', 'SE', 'SP', 'TO',\n];\n\nexport const IE_OFFICIAL_SOURCE_URLS: Readonly<Record<UfCode, string>> = {\n AC: 'https://sefaz.ac.gov.br/',\n AL: 'https://www.sefaz.al.gov.br/calculo',\n AM: 'https://www.sefaz.am.gov.br/',\n AP: 'https://www.sefaz.ap.gov.br/',\n BA: 'https://www.sefaz.ba.gov.br/inspetoria-eletronica/icms/cadastro/calculo-dv/',\n CE: 'https://www.sefaz.ce.gov.br/',\n DF: 'https://www.receita.fazenda.df.gov.br/',\n ES: 'https://sitenet.es.gov.br/sefaz/',\n GO: 'http://www.sefaz.go.gov.br/ServicosAFA/ece.html',\n MA: 'https://www.sefaz.ma.gov.br/',\n MG: 'https://www.fazenda.mg.gov.br/empresas/Cadastro/cadastro/consultapublica.html',\n MS: 'https://www.sefaz.ms.gov.br/',\n MT: 'https://app1.sefaz.mt.gov.br/Sistema/legislacao/legislacaotribut.nsf/709f9c981a9d9f468425671300482be0/2217ddcf7a9b7cea03258c6c007324ba?OpenDocument=',\n PA: 'https://www.sefa.pa.gov.br/',\n PB: 'https://www.receita.pb.gov.br/',\n PE: 'https://www.sefaz.pe.gov.br/',\n PI: 'https://www.sefaz.pi.gov.br/',\n PR: 'https://www.fazenda.pr.gov.br/Pagina/calculo-digito-verificador',\n RJ: 'https://portal.fazenda.rj.gov.br/cadastro/',\n RN: 'https://www.set.rn.gov.br/',\n RO: 'https://www.sefin.ro.gov.br/',\n RR: 'https://www.sefaz.rr.gov.br/',\n RS: 'https://www.sefaz.rs.gov.br/',\n SC: 'https://sat.sef.sc.gov.br/',\n SE: 'https://www.sefaz.se.gov.br/',\n SP: 'https://portal.fazenda.sp.gov.br/servicos/icms/Paginas/sintegra-rotina-consistencia.aspx',\n TO: 'https://www.sefaz.to.gov.br/',\n};\n\nexport const IE_OFFICIAL_SOURCE_URL = 'docs/IE-STATE-ALGORITHMS.md';\n\nexport const IE_AC_PREFIX = '01';\nexport const IE_AL_PREFIX = '24';\nexport const IE_AM_PREFIX = '04';\nexport const IE_AP_PREFIX = '03';\nexport const IE_DF_PREFIX = '07';\nexport const IE_GO_PREFIXES = ['10', '11', '15', '20'] as const;\nexport const IE_MA_PREFIX = '12';\nexport const IE_MS_PREFIX = '28';\nexport const IE_MT_PREFIX = '13';\nexport const IE_PA_PREFIX = '15';\nexport const IE_RN_PREFIX = '20';\nexport const IE_RR_PREFIX = '24';\nexport const IE_TO_LEGACY_PREFIXES = ['01', '02', '03', '99'] as const;\n\nexport const IE_SP_LENGTH = 12;\nexport const IE_SP_DV1_WEIGHTS = [1, 3, 4, 5, 6, 7, 8, 10] as const;\nexport const IE_SP_DV2_WEIGHTS = [3, 2, 10, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const IE_SP_GOLDEN = '110042490114';\nexport const IE_SP_GOLDEN_MASKED = '110.042.490.114';\nexport const IE_SP_OFFICIAL_SOURCE_URL = IE_OFFICIAL_SOURCE_URLS.SP;\n\nexport const IE_SP_RURAL_LENGTH = 13;\nexport const IE_SP_RURAL_GOLDEN = 'P011004243002';\nexport const IE_SP_RURAL_GOLDEN_MASKED = 'P-01100424.3/002';\nexport const IE_SP_RURAL_OFFICIAL_SOURCE_URL = 'http://www.sintegra.gov.br/Cad_Estados/cad_SP.html';\n\nexport const IE_MT_CANONICAL_LENGTH = 9;\nexport const IE_MT_LEGACY_LENGTH = 11;\nexport const IE_MT_DV_WEIGHTS = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const IE_MT_GOLDEN_LEGACY = '00130000019';\nexport const IE_MT_GOLDEN_CANONICAL = '130000019';\nexport const IE_MT_OFFICIAL_SOURCE_URL = IE_OFFICIAL_SOURCE_URLS.MT;\n\nexport const IE_DF_LENGTH = 13;\nexport const IE_DF_DV1_WEIGHTS = [4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const IE_DF_DV2_WEIGHTS = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const IE_DF_GOLDEN = '0730000100109';\nexport const IE_DF_GOLDEN_MASKED = '073.00001.001-09';\nexport const IE_DF_OFFICIAL_SOURCE_URL = IE_OFFICIAL_SOURCE_URLS.DF;\n","/**\n * Shared modulo helpers for IE check digits.\n */\n\nexport function computeIeSpCheckDigit(digits: string, weights: readonly number[]): number {\n let sum = 0;\n for (let i = 0; i < weights.length; i++) {\n sum += Number(digits[i]) * weights[i];\n }\n const remainder = sum % 11;\n return remainder === 10 ? 0 : remainder % 10;\n}\n\nexport function computeIeMtCheckDigit(digits10: string): number {\n let sum = 0;\n const weights = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n for (let i = 0; i < 10; i++) {\n sum += Number(digits10[i]) * weights[i];\n }\n const remainder = sum % 11;\n return remainder <= 1 ? 0 : 11 - remainder;\n}\n\nexport function computeIeDfCheckDigit(\n digits: string,\n weights: readonly number[],\n includeDv1 = false,\n dv1 = 0,\n): number {\n let sum = 0;\n const digitCount = includeDv1 ? 11 : digits.length;\n for (let i = 0; i < digitCount; i++) {\n sum += Number(digits[i]) * weights[i];\n }\n if (includeDv1) {\n sum += dv1 * weights[11];\n }\n const remainder = sum % 11;\n return remainder <= 1 ? 0 : 11 - remainder;\n}\n\n/** CE / SC / SE / PB / PI — weights 9..2 on 8 body digits. */\nexport function computeIeCeCheckDigit(body8: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** AL — product×10 mod 11. */\nexport function computeIeAlCheckDigit(body8: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n const product = sum * 10;\n let digit = product - Math.floor(product / 11) * 11;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** AM — descending weights with special remainder rule. */\nexport function computeIeAmCheckDigit(body8: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n if (sum < 11) {\n return 11 - sum;\n }\n const remainder = sum % 11;\n let digit = 11 - remainder;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** PR / AC style — mod11, weights cycle 2..7 from right. */\nexport function computeIePrStyleCheckDigit(body: string): number {\n let weight = body.length - 5;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = 7;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** AC — weights cycle 9..2 from left. */\nexport function computeIeAcCheckDigit(body: string): number {\n let weight = body.length - 7;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = 9;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** BA — mod10 or mod11 by reference digit. */\nexport function computeIeBaModule(ie: string): number {\n const refIndex = ie.length === 9 ? 1 : 0;\n const refDigit = Number(ie[refIndex]);\n const mod10Digits = [0, 1, 2, 3, 4, 5, 8];\n return mod10Digits.includes(refDigit) ? 10 : 11;\n}\n\nexport function computeIeBaCheckDigit(body: string, mod: number): number {\n let weight = body.length + 1;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n }\n const rest = sum % mod;\n let digit = mod - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** PE — dual DV, weights length+1..2. */\nexport function computeIePeCheckDigit(body: string): number {\n let weight = body.length + 1;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** RJ / RS / RO — cyclic descending weights. */\nexport function computeIeCyclicMod11CheckDigit(\n body: string,\n startWeight: number,\n resetWeight: number,\n): number {\n let weight = startWeight;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = resetWeight;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** RO — cyclic weights 6..9, subtract 10 when digit >= 10. */\nexport function computeIeRoCheckDigit(body: string): number {\n let weight = 6;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = 9;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit -= 10;\n }\n return digit;\n}\n\n/** GO — mod11 with special range override. */\nexport function computeIeGoCheckDigit(body8: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n const bodyInt = Number(body8);\n if (digit >= 10) {\n if (digit === 11 && bodyInt >= 10103105 && bodyInt <= 10119997) {\n digit = 1;\n } else {\n digit = 0;\n }\n }\n return digit;\n}\n\n/** AP — prefix 03 with range-based p/d constants. */\nexport function computeIeApCheckDigit(body8: string): number {\n const bodyInt = Number(body8);\n let p = 0;\n let d = 0;\n if (bodyInt >= 3000001 && bodyInt <= 3017000) {\n p = 5;\n d = 0;\n } else if (bodyInt >= 3017001 && bodyInt <= 3019022) {\n p = 9;\n d = 1;\n }\n let weight = 9;\n let sum = p;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n let digit = 11 - (sum % 11);\n if (digit === 10) {\n digit = 0;\n } else if (digit === 11) {\n digit = d;\n }\n return digit;\n}\n\n/** RR — mod9, ascending weights 1..8. */\nexport function computeIeRrCheckDigit(body8: string): number {\n let weight = 1;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight++;\n }\n return sum % 9;\n}\n\n/** TO — mod11, rest < 2 → DV 0. */\nexport function computeIeToCheckDigit(body: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n }\n const rest = sum % 11;\n if (rest < 2) {\n return 0;\n }\n return 11 - rest;\n}\n\n/** MG — first DV via digit-sum on alternating products. */\nexport function computeIeMgFirstCheckDigit(body11: string): number {\n const bodyWithZero = `${body11.slice(0, 3)}0${body11.slice(3)}`;\n let weightedSum = '';\n for (let i = 0; i < bodyWithZero.length; i++) {\n const w = (i + 1) % 2 === 0 ? 2 : 1;\n weightedSum += (Number(bodyWithZero[i]) * w).toString();\n }\n let sum = 0;\n for (let i = 0; i < weightedSum.length; i++) {\n sum += Number(weightedSum[i]);\n }\n const lastDigit = Number(sum.toString().slice(-1));\n return lastDigit === 0 ? 0 : 10 - lastDigit;\n}\n\n/** MG — second DV, weights 3..11 cycling. */\nexport function computeIeMgSecondCheckDigit(body12: string): number {\n let weight = 3;\n let sum = 0;\n for (let i = 0; i < body12.length; i++) {\n sum += Number(body12[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = 11;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n","/**\n * São Paulo produtor rural IE — Regra II (SINTEGRA cad_SP.html Bloco II).\n * @see BR-IE-SP-RURAL-001\n * @see http://www.sintegra.gov.br/Cad_Estados/cad_SP.html\n */\nimport type { IeProdutorRuralValidationResult } from '../../types/validation-result.js';\nimport { brandInscricaoEstadualProdutorRural } from '../../types/validation-result.js';\nimport { IE_SP_DV1_WEIGHTS, IE_SP_RURAL_LENGTH } from './constants.js';\nimport { computeIeSpCheckDigit } from './modulo-ie.js';\n\ntype FailedResult = Extract<IeProdutorRuralValidationResult, { ok: false }>;\n\nconst SP_RURAL_MASK_PATTERN = /^[Pp0-9.\\-\\s/]+$/;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, uf: 'SP' };\n}\n\nexport function isSpRuralIeInput(input: string): boolean {\n return /^[Pp]/.test(input.trim());\n}\n\nexport function stripIeSpRural(input: string): string {\n const trimmed = input.trim().toUpperCase();\n const digits = trimmed.replace(/^[P]/, '').replace(/\\D/g, '');\n return `P${digits}`;\n}\n\nexport function validateIeSpRural(input: string): IeProdutorRuralValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Inscrição Estadual produtor rural input is empty', uf: 'SP' };\n }\n\n if (!/^[Pp]/.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'SP produtor rural Inscrição Estadual must start with P');\n }\n\n if (!SP_RURAL_MASK_PATTERN.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'SP produtor rural Inscrição Estadual contains invalid characters');\n }\n\n const stripped = stripIeSpRural(trimmed);\n if (stripped.length !== IE_SP_RURAL_LENGTH) {\n return failure(\n 'INVALID_LENGTH',\n `SP produtor rural Inscrição Estadual must have ${IE_SP_RURAL_LENGTH} characters after normalization`,\n );\n }\n\n const dvInput = stripped.slice(1, 9);\n const expectedDv = computeIeSpCheckDigit(dvInput, IE_SP_DV1_WEIGHTS);\n const actualDv = Number(stripped.charAt(9));\n\n if (actualDv !== expectedDv) {\n return failure('INVALID_CHECK_DIGIT', 'SP produtor rural Inscrição Estadual check digit is invalid');\n }\n\n return {\n ok: true,\n value: brandInscricaoEstadualProdutorRural(stripped),\n uf: 'SP',\n format: 'inscricao-estadual-produtor-rural',\n };\n}\n","/**\n * Inscrição Estadual produtor rural — SP Regra II only.\n * @see http://www.sintegra.gov.br/Cad_Estados/cad_SP.html\n */\nimport type { IeProdutorRuralValidationResult, UfCode } from '../../types/validation-result.js';\nimport { IE_SP_RURAL_OFFICIAL_SOURCE_URL } from './constants.js';\nimport { validateIeSpRural } from './sp-rural.js';\n\ntype FailedResult = Extract<IeProdutorRuralValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string, uf: UfCode): FailedResult {\n return { ok: false, code, message, uf };\n}\n\nexport function getIeProdutorRuralOfficialSourceUrl(): string {\n return IE_SP_RURAL_OFFICIAL_SOURCE_URL;\n}\n\nexport function isValidIeProdutorRural(uf: UfCode, input: string): boolean {\n return validateIeProdutorRural(uf, input).ok;\n}\n\nexport function validateIeProdutorRural(uf: UfCode, input: string): IeProdutorRuralValidationResult {\n if (uf !== 'SP') {\n return failure(\n 'UNSUPPORTED_FORMAT',\n 'Produtor rural Inscrição Estadual validation is supported for SP only; use validateInscricaoEstadual for other UFs',\n uf,\n );\n }\n return validateIeSpRural(input);\n}\n","import { IE_DF_LENGTH, IE_SP_LENGTH, IE_SP_RURAL_LENGTH } from './constants.js';\n\nexport function applyIeSpMask(stripped: string): string {\n if (stripped.length !== IE_SP_LENGTH) {\n throw new Error('SP IE must have exactly 12 digits to apply mask');\n }\n return `${stripped.slice(0, 3)}.${stripped.slice(3, 6)}.${stripped.slice(6, 9)}.${stripped.slice(9)}`;\n}\n\nexport function applyIeSpRuralMask(stripped: string): string {\n if (stripped.length !== IE_SP_RURAL_LENGTH || !stripped.startsWith('P')) {\n throw new Error('SP produtor rural IE must have exactly 13 characters starting with P to apply mask');\n }\n const body = stripped.slice(1);\n return `P-${body.slice(0, 8)}.${body.charAt(8)}/${body.slice(9)}`;\n}\n\nexport function applyIeDfMask(stripped: string): string {\n if (stripped.length !== IE_DF_LENGTH) {\n throw new Error('DF IE must have exactly 13 digits to apply mask');\n }\n return `${stripped.slice(0, 3)}.${stripped.slice(3, 8)}.${stripped.slice(8, 11)}-${stripped.slice(11)}`;\n}\n"]}
@@ -0,0 +1,115 @@
1
+ import { applyPisPasepMask } from './chunk-XFKSJRWM.js';
2
+ import { computeCheckDigit } from './chunk-OTZHMJYE.js';
3
+ import { brandNit } from './chunk-EMZCVV5Y.js';
4
+
5
+ // src/strip/cnis.ts
6
+ function stripNit(input) {
7
+ return input.replace(/\D/g, "");
8
+ }
9
+
10
+ // src/core/cnis/constants.ts
11
+ var CNIS_DV_WEIGHTS = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
12
+ var CNIS_LENGTH = 11;
13
+ var CNIS_BASE_LENGTH = 10;
14
+ var CNIS_MASK_PATTERN = /^(\d{3})(\d{5})(\d{2})(\d{1})$/;
15
+ var CNIS_OFFICIAL_VALIDATION_URL = "https://www.gov.br/previdencia/pt-br/outros/imagens/2015/07/rgrva_RegrasValidacao.pdf";
16
+ var CNIS_INSS_NIT_SERVICE_URL = "https://www.gov.br/pt-br/servicos/obter-numero-de-inscricao-no-inss-nit";
17
+ var CNIS_GOLDEN_CAIXA_PIS = "10027230888";
18
+ var CNIS_GOLDEN_CAIXA_PIS_MASKED = "100.27230.88-8";
19
+ var CNIS_GOLDEN_INSS_NIT = "01234567897";
20
+ var CNIS_GOLDEN_INSS_NIT_MASKED = "012.34567.89-7";
21
+
22
+ // src/core/cnis/checksum.ts
23
+ function digitValue(char) {
24
+ return Number(char);
25
+ }
26
+ function isValidCnisModulo11(stripped) {
27
+ const base = stripped.slice(0, CNIS_BASE_LENGTH);
28
+ const dvExpected = String(computeCheckDigit(base, CNIS_DV_WEIGHTS, digitValue));
29
+ return stripped.charAt(CNIS_BASE_LENGTH) === dvExpected;
30
+ }
31
+
32
+ // src/core/cnis/issuer.ts
33
+ function inferNitIssuer(stripped) {
34
+ return stripped.charAt(0) === "0" ? "inss" : "caixa";
35
+ }
36
+ function inferNitTipo(stripped) {
37
+ const first = stripped.charAt(0);
38
+ if (first === "0") {
39
+ return "nit";
40
+ }
41
+ if (first === "1" || first === "2" || first === "3") {
42
+ return "pis";
43
+ }
44
+ return "nis";
45
+ }
46
+ function resolveNitMetadata(stripped, options) {
47
+ return {
48
+ issuer: options?.issuer ?? inferNitIssuer(stripped),
49
+ tipo: options?.tipo ?? inferNitTipo(stripped)
50
+ };
51
+ }
52
+
53
+ // src/core/cnis/index.ts
54
+ function failure(code, message) {
55
+ return { ok: false, code, message };
56
+ }
57
+ function hasRepeatedDigits(value) {
58
+ const first = value[0];
59
+ for (let i = 1; i < value.length; i++) {
60
+ if (value[i] !== first) {
61
+ return false;
62
+ }
63
+ }
64
+ return true;
65
+ }
66
+ function validateStructure(input, stripped) {
67
+ if (stripped.length === 0) {
68
+ return failure("EMPTY_INPUT", "NIT input is empty");
69
+ }
70
+ const withoutMask = input.replace(/[.-]/g, "");
71
+ if (/[^0-9]/.test(withoutMask)) {
72
+ return failure("INVALID_CHARACTER", "NIT contains invalid characters");
73
+ }
74
+ if (stripped.length !== CNIS_LENGTH) {
75
+ return failure("INVALID_LENGTH", `NIT must have ${String(CNIS_LENGTH)} digits after normalization`);
76
+ }
77
+ if (hasRepeatedDigits(stripped)) {
78
+ return failure("KNOWN_INVALID_PATTERN", "NIT with all identical digits is invalid");
79
+ }
80
+ return null;
81
+ }
82
+ function isValidNit(input, options) {
83
+ return validateNit(input, options).ok;
84
+ }
85
+ function validateNit(input, options) {
86
+ const stripped = stripNit(input);
87
+ const structural = validateStructure(input, stripped);
88
+ if (structural) {
89
+ return structural;
90
+ }
91
+ if (!isValidCnisModulo11(stripped)) {
92
+ return failure("INVALID_CHECK_DIGIT", "NIT check digit is invalid");
93
+ }
94
+ const metadata = resolveNitMetadata(stripped, options);
95
+ return {
96
+ ok: true,
97
+ value: brandNit(stripped),
98
+ format: "numeric",
99
+ issuer: metadata.issuer,
100
+ tipo: metadata.tipo
101
+ };
102
+ }
103
+
104
+ // src/format/cnis.ts
105
+ function formatNit(input) {
106
+ const result = validateNit(input);
107
+ if (!result.ok) {
108
+ return { ok: false, code: result.code, message: result.message };
109
+ }
110
+ return { ok: true, formatted: applyPisPasepMask(result.value) };
111
+ }
112
+
113
+ export { CNIS_BASE_LENGTH, CNIS_DV_WEIGHTS, CNIS_GOLDEN_CAIXA_PIS, CNIS_GOLDEN_CAIXA_PIS_MASKED, CNIS_GOLDEN_INSS_NIT, CNIS_GOLDEN_INSS_NIT_MASKED, CNIS_INSS_NIT_SERVICE_URL, CNIS_LENGTH, CNIS_MASK_PATTERN, CNIS_OFFICIAL_VALIDATION_URL, formatNit, inferNitIssuer, inferNitTipo, isValidNit, resolveNitMetadata, stripNit, validateNit };
114
+ //# sourceMappingURL=chunk-VXHJLWMA.js.map
115
+ //# sourceMappingURL=chunk-VXHJLWMA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/strip/cnis.ts","../src/core/cnis/constants.ts","../src/core/cnis/checksum.ts","../src/core/cnis/issuer.ts","../src/core/cnis/index.ts","../src/format/cnis.ts"],"names":[],"mappings":"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","file":"chunk-VXHJLWMA.js","sourcesContent":["/**\n * Strip NIT mask — digits only (same mask family as PIS/PASEP per RV_03).\n */\nexport function stripNit(input: string): string {\n return input.replace(/\\D/g, '');\n}\n","/**\n * CNIS / NIT — modulo 11 (same family as PIS/PASEP per RV_03).\n * @see https://www.gov.br/previdencia/pt-br/outros/imagens/2015/07/rgrva_RegrasValidacao.pdf — RV_03\n */\n\nexport const CNIS_DV_WEIGHTS = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const CNIS_LENGTH = 11;\nexport const CNIS_BASE_LENGTH = 10;\nexport const CNIS_MASK_PATTERN = /^(\\d{3})(\\d{5})(\\d{2})(\\d{1})$/;\n\n/** SIPREV RV_03 — shared checksum rules for PIS/PASEP/NIT. */\nexport const CNIS_OFFICIAL_VALIDATION_URL =\n 'https://www.gov.br/previdencia/pt-br/outros/imagens/2015/07/rgrva_RegrasValidacao.pdf';\n\n/** INSS — NIT enrollment (individual contributors). */\nexport const CNIS_INSS_NIT_SERVICE_URL =\n 'https://www.gov.br/pt-br/servicos/obter-numero-de-inscricao-no-inss-nit';\n\n/** Golden — Caixa PIS series (UC-006 cross-check). */\nexport const CNIS_GOLDEN_CAIXA_PIS = '10027230888';\nexport const CNIS_GOLDEN_CAIXA_PIS_MASKED = '100.27230.88-8';\n\n/** Golden — INSS NIT series (leading zero, DV per RV_03). */\nexport const CNIS_GOLDEN_INSS_NIT = '01234567897';\nexport const CNIS_GOLDEN_INSS_NIT_MASKED = '012.34567.89-7';\n","import { computeCheckDigit } from '../cnpj/modulo11.js';\nimport { CNIS_BASE_LENGTH, CNIS_DV_WEIGHTS } from './constants.js';\n\nfunction digitValue(char: string): number {\n return Number(char);\n}\n\nexport function isValidCnisModulo11(stripped: string): boolean {\n const base = stripped.slice(0, CNIS_BASE_LENGTH);\n const dvExpected = String(computeCheckDigit(base, CNIS_DV_WEIGHTS, digitValue));\n return stripped.charAt(CNIS_BASE_LENGTH) === dvExpected;\n}\n","/**\n * CNIS issuer / tipo metadata — heuristic when caller context is unknown.\n * Checksum validation is authoritative (RV_03); issuer inference is not a CNIS lookup.\n */\n\nimport type { NitIssuer, NitTipo } from '../../types/validation-result.js';\n\nexport type { NitIssuer, NitTipo };\n\nexport type NitMetadataOptions = {\n issuer?: NitIssuer;\n tipo?: NitTipo;\n};\n\nexport function inferNitIssuer(stripped: string): NitIssuer {\n return stripped.charAt(0) === '0' ? 'inss' : 'caixa';\n}\n\nexport function inferNitTipo(stripped: string): NitTipo {\n const first = stripped.charAt(0);\n if (first === '0') {\n return 'nit';\n }\n if (first === '1' || first === '2' || first === '3') {\n return 'pis';\n }\n return 'nis';\n}\n\nexport function resolveNitMetadata(\n stripped: string,\n options?: NitMetadataOptions,\n): { issuer: NitIssuer; tipo: NitTipo } {\n return {\n issuer: options?.issuer ?? inferNitIssuer(stripped),\n tipo: options?.tipo ?? inferNitTipo(stripped),\n };\n}\n","/**\n * CNIS / NIT validation — modulo 11 with issuer metadata (INSS vs Caixa).\n * @see https://www.gov.br/previdencia/pt-br/outros/imagens/2015/07/rgrva_RegrasValidacao.pdf — RV_03\n */\nimport { stripNit } from '../../strip/cnis.js';\nimport type { NitValidationResult } from '../../types/validation-result.js';\nimport { brandNit } from '../../types/validation-result.js';\nimport { isValidCnisModulo11 } from './checksum.js';\nimport { CNIS_LENGTH } from './constants.js';\nimport { resolveNitMetadata, type NitMetadataOptions } from './issuer.js';\n\nexport {\n CNIS_BASE_LENGTH,\n CNIS_DV_WEIGHTS,\n CNIS_GOLDEN_CAIXA_PIS,\n CNIS_GOLDEN_CAIXA_PIS_MASKED,\n CNIS_GOLDEN_INSS_NIT,\n CNIS_GOLDEN_INSS_NIT_MASKED,\n CNIS_INSS_NIT_SERVICE_URL,\n CNIS_LENGTH,\n CNIS_MASK_PATTERN,\n CNIS_OFFICIAL_VALIDATION_URL,\n} from './constants.js';\nexport type {\n NitIssuer,\n NitMetadataOptions,\n NitTipo,\n} from './issuer.js';\nexport {\n inferNitIssuer,\n inferNitTipo,\n resolveNitMetadata,\n} from './issuer.js';\n\ntype FailedResult = Extract<NitValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message };\n}\n\nfunction hasRepeatedDigits(value: string): boolean {\n const first = value[0];\n for (let i = 1; i < value.length; i++) {\n if (value[i] !== first) {\n return false;\n }\n }\n return true;\n}\n\nfunction validateStructure(input: string, stripped: string): FailedResult | null {\n if (stripped.length === 0) {\n return failure('EMPTY_INPUT', 'NIT input is empty');\n }\n\n const withoutMask = input.replace(/[.-]/g, '');\n if (/[^0-9]/.test(withoutMask)) {\n return failure('INVALID_CHARACTER', 'NIT contains invalid characters');\n }\n\n if (stripped.length !== CNIS_LENGTH) {\n return failure('INVALID_LENGTH', `NIT must have ${String(CNIS_LENGTH)} digits after normalization`);\n }\n\n if (hasRepeatedDigits(stripped)) {\n return failure('KNOWN_INVALID_PATTERN', 'NIT with all identical digits is invalid');\n }\n\n return null;\n}\n\nexport type ValidateNitOptions = NitMetadataOptions;\n\nexport function isValidNit(input: string, options?: ValidateNitOptions): boolean {\n return validateNit(input, options).ok;\n}\n\nexport function validateNit(input: string, options?: ValidateNitOptions): NitValidationResult {\n const stripped = stripNit(input);\n const structural = validateStructure(input, stripped);\n if (structural) {\n return structural;\n }\n\n if (!isValidCnisModulo11(stripped)) {\n return failure('INVALID_CHECK_DIGIT', 'NIT check digit is invalid');\n }\n\n const metadata = resolveNitMetadata(stripped, options);\n return {\n ok: true,\n value: brandNit(stripped),\n format: 'numeric',\n issuer: metadata.issuer,\n tipo: metadata.tipo,\n };\n}\n","import { applyPisPasepMask } from '../core/pis-pasep/mask.js';\nimport { validateNit } from '../core/cnis/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatNit(input: string): FormatResult {\n const result = validateNit(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyPisPasepMask(result.value) };\n}\n"]}
@@ -0,0 +1,13 @@
1
+ // src/core/pis-pasep/constants.ts
2
+ var PIS_PASEP_DV_WEIGHTS = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
3
+ var PIS_PASEP_LENGTH = 11;
4
+ var PIS_PASEP_BASE_LENGTH = 10;
5
+ var PIS_PASEP_MASK_PATTERN = /^(\d{3})(\d{5})(\d{2})(\d{1})$/;
6
+ var PIS_PASEP_GOLDEN_PRIMARY = "10027230888";
7
+ var PIS_PASEP_GOLDEN_SECONDARY = "12056456402";
8
+ var PIS_PASEP_GOLDEN_PRIMARY_MASKED = "100.27230.88-8";
9
+ var PIS_PASEP_OFFICIAL_SOURCE_URL = "https://www.gov.br/previdencia/pt-br/outros/imagens/2015/07/rgrva_RegrasValidacao.pdf";
10
+
11
+ export { PIS_PASEP_BASE_LENGTH, PIS_PASEP_DV_WEIGHTS, PIS_PASEP_GOLDEN_PRIMARY, PIS_PASEP_GOLDEN_PRIMARY_MASKED, PIS_PASEP_GOLDEN_SECONDARY, PIS_PASEP_LENGTH, PIS_PASEP_MASK_PATTERN, PIS_PASEP_OFFICIAL_SOURCE_URL };
12
+ //# sourceMappingURL=chunk-W64OQYC4.js.map
13
+ //# sourceMappingURL=chunk-W64OQYC4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/pis-pasep/constants.ts"],"names":[],"mappings":";AAOO,IAAM,oBAAA,GAAuB,CAAC,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAC;AAC1D,IAAM,gBAAA,GAAmB;AACzB,IAAM,qBAAA,GAAwB;AAC9B,IAAM,sBAAA,GAAyB;AAE/B,IAAM,wBAAA,GAA2B;AACjC,IAAM,0BAAA,GAA6B;AACnC,IAAM,+BAAA,GAAkC;AACxC,IAAM,6BAAA,GACX","file":"chunk-W64OQYC4.js","sourcesContent":["/**\n * PIS/PASEP/NIS/NIT constants — modulo 11 (CNIS unified registry).\n * @see https://www.gov.br/previdencia/pt-br/outros/imagens/2015/07/rgrva_RegrasValidacao.pdf — RV_03\n * @see docs/use-cases/UC-006-validate-pis-pasep.md — golden vector 10027230888\n *\n * PIS, PASEP, NIS, and NIT share the same 11-digit algorithm and check-digit weights.\n */\nexport const PIS_PASEP_DV_WEIGHTS = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const PIS_PASEP_LENGTH = 11;\nexport const PIS_PASEP_BASE_LENGTH = 10;\nexport const PIS_PASEP_MASK_PATTERN = /^(\\d{3})(\\d{5})(\\d{2})(\\d{1})$/;\n\nexport const PIS_PASEP_GOLDEN_PRIMARY = '10027230888';\nexport const PIS_PASEP_GOLDEN_SECONDARY = '12056456402';\nexport const PIS_PASEP_GOLDEN_PRIMARY_MASKED = '100.27230.88-8';\nexport const PIS_PASEP_OFFICIAL_SOURCE_URL =\n 'https://www.gov.br/previdencia/pt-br/outros/imagens/2015/07/rgrva_RegrasValidacao.pdf';\n"]}
@@ -1,5 +1,5 @@
1
- import { applyCpfMask } from './chunk-CNJ4DIYS.js';
2
- import { validateCpf } from './chunk-LBAWZ4EV.js';
1
+ import { applyCpfMask } from './chunk-O7RJQUAJ.js';
2
+ import { validateCpf } from './chunk-PUTVO6HG.js';
3
3
 
4
4
  // src/format/cpf.ts
5
5
  function formatCpf(input) {
@@ -11,5 +11,5 @@ function formatCpf(input) {
11
11
  }
12
12
 
13
13
  export { formatCpf };
14
- //# sourceMappingURL=chunk-C7WXL7UR.js.map
15
- //# sourceMappingURL=chunk-C7WXL7UR.js.map
14
+ //# sourceMappingURL=chunk-WAVBQYPE.js.map
15
+ //# sourceMappingURL=chunk-WAVBQYPE.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/format/cpf.ts"],"names":[],"mappings":";;;;AAIO,SAAS,UAAU,KAAA,EAA6B;AACrD,EAAA,MAAM,MAAA,GAAS,YAAY,KAAK,CAAA;AAChC,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AACA,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,WAAW,YAAA,CAAa,MAAA,CAAO,KAAK,CAAA,EAAE;AAC3D","file":"chunk-C7WXL7UR.js","sourcesContent":["import { applyCpfMask } from '../core/cpf/mask.js';\nimport { validateCpf } from '../core/cpf/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatCpf(input: string): FormatResult {\n const result = validateCpf(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyCpfMask(result.value) };\n}\n"]}
1
+ {"version":3,"sources":["../src/format/cpf.ts"],"names":[],"mappings":";;;;AAIO,SAAS,UAAU,KAAA,EAA6B;AACrD,EAAA,MAAM,MAAA,GAAS,YAAY,KAAK,CAAA;AAChC,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AACA,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,WAAW,YAAA,CAAa,MAAA,CAAO,KAAK,CAAA,EAAE;AAC3D","file":"chunk-WAVBQYPE.js","sourcesContent":["import { applyCpfMask } from '../core/cpf/mask.js';\nimport { validateCpf } from '../core/cpf/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatCpf(input: string): FormatResult {\n const result = validateCpf(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyCpfMask(result.value) };\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-QSSKPIG5.js';
2
- import { brandCodigoBarras } from './chunk-4NFEM2SU.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-SIMI5XYE.js';
2
+ import { brandCodigoBarras } from './chunk-EMZCVV5Y.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-CYBWPBXJ.js.map
220
- //# sourceMappingURL=chunk-CYBWPBXJ.js.map
219
+ //# sourceMappingURL=chunk-WE6RG6OC.js.map
220
+ //# sourceMappingURL=chunk-WE6RG6OC.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-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
+ {"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-WE6RG6OC.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 { validateNfeChave, NFE_CHAVE_NUMERIC_PATTERN } from './chunk-IJ2DAVSD.js';
1
+ import { validateNfeChave, NFE_CHAVE_NUMERIC_PATTERN } from './chunk-OM5ELPM6.js';
2
2
 
3
3
  // src/core/nfe-chave/mask.ts
4
4
  function applyNfeChaveMask(canonical) {
@@ -22,5 +22,5 @@ function formatNfeChave(input) {
22
22
  }
23
23
 
24
24
  export { formatNfeChave };
25
- //# sourceMappingURL=chunk-Z7KH65RZ.js.map
26
- //# sourceMappingURL=chunk-Z7KH65RZ.js.map
25
+ //# sourceMappingURL=chunk-WKDCI3NI.js.map
26
+ //# sourceMappingURL=chunk-WKDCI3NI.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/nfe-chave/mask.ts","../src/format/nfe-chave.ts"],"names":[],"mappings":";;;AAMO,SAAS,kBAAkB,SAAA,EAA2B;AAC3D,EAAA,IAAI,CAAC,yBAAA,CAA0B,IAAA,CAAK,SAAS,CAAA,EAAG;AAC9C,IAAA,MAAM,IAAI,MAAM,sDAAsD,CAAA;AAAA,EACxE;AAEA,EAAA,MAAM,SAAmB,EAAC;AAC1B,EAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,SAAA,CAAU,MAAA,EAAQ,KAAK,CAAA,EAAG;AAC5C,IAAA,MAAA,CAAO,KAAK,SAAA,CAAU,KAAA,CAAM,CAAA,EAAG,CAAA,GAAI,CAAC,CAAC,CAAA;AAAA,EACvC;AACA,EAAA,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACxB;;;ACZO,SAAS,eAAe,KAAA,EAA6B;AAC1D,EAAA,MAAM,MAAA,GAAS,iBAAiB,KAAK,CAAA;AACrC,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,iBAAA,CAAkB,MAAA,CAAO,KAAK,CAAA,EAAE;AAChE","file":"chunk-Z7KH65RZ.js","sourcesContent":["import { NFE_CHAVE_NUMERIC_PATTERN } from './constants.js';\n\n/**\n * Display mask — 11 groups of 4 digits (BR-NFE-CHAVE-006).\n * @see http://moc.sped.fazenda.pr.gov.br/ — chave de acesso layout\n */\nexport function applyNfeChaveMask(canonical: string): string {\n if (!NFE_CHAVE_NUMERIC_PATTERN.test(canonical)) {\n throw new Error('NF-e chave must have exactly 44 digits to apply mask');\n }\n\n const groups: string[] = [];\n for (let i = 0; i < canonical.length; i += 4) {\n groups.push(canonical.slice(i, i + 4));\n }\n return groups.join(' ');\n}\n","import { applyNfeChaveMask } from '../core/nfe-chave/mask.js';\nimport { validateNfeChave } from '../core/nfe-chave/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatNfeChave(input: string): FormatResult {\n const result = validateNfeChave(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyNfeChaveMask(result.value) };\n}\n"]}
1
+ {"version":3,"sources":["../src/core/nfe-chave/mask.ts","../src/format/nfe-chave.ts"],"names":[],"mappings":";;;AAMO,SAAS,kBAAkB,SAAA,EAA2B;AAC3D,EAAA,IAAI,CAAC,yBAAA,CAA0B,IAAA,CAAK,SAAS,CAAA,EAAG;AAC9C,IAAA,MAAM,IAAI,MAAM,sDAAsD,CAAA;AAAA,EACxE;AAEA,EAAA,MAAM,SAAmB,EAAC;AAC1B,EAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,SAAA,CAAU,MAAA,EAAQ,KAAK,CAAA,EAAG;AAC5C,IAAA,MAAA,CAAO,KAAK,SAAA,CAAU,KAAA,CAAM,CAAA,EAAG,CAAA,GAAI,CAAC,CAAC,CAAA;AAAA,EACvC;AACA,EAAA,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACxB;;;ACZO,SAAS,eAAe,KAAA,EAA6B;AAC1D,EAAA,MAAM,MAAA,GAAS,iBAAiB,KAAK,CAAA;AACrC,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,iBAAA,CAAkB,MAAA,CAAO,KAAK,CAAA,EAAE;AAChE","file":"chunk-WKDCI3NI.js","sourcesContent":["import { NFE_CHAVE_NUMERIC_PATTERN } from './constants.js';\n\n/**\n * Display mask — 11 groups of 4 digits (BR-NFE-CHAVE-006).\n * @see http://moc.sped.fazenda.pr.gov.br/ — chave de acesso layout\n */\nexport function applyNfeChaveMask(canonical: string): string {\n if (!NFE_CHAVE_NUMERIC_PATTERN.test(canonical)) {\n throw new Error('NF-e chave must have exactly 44 digits to apply mask');\n }\n\n const groups: string[] = [];\n for (let i = 0; i < canonical.length; i += 4) {\n groups.push(canonical.slice(i, i + 4));\n }\n return groups.join(' ');\n}\n","import { applyNfeChaveMask } from '../core/nfe-chave/mask.js';\nimport { validateNfeChave } from '../core/nfe-chave/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatNfeChave(input: string): FormatResult {\n const result = validateNfeChave(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyNfeChaveMask(result.value) };\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import { PIS_PASEP_MASK_PATTERN } from './chunk-W64OQYC4.js';
2
+
3
+ // src/core/pis-pasep/mask.ts
4
+ function applyPisPasepMask(canonical) {
5
+ const match = PIS_PASEP_MASK_PATTERN.exec(canonical);
6
+ if (!match) {
7
+ throw new Error("PIS/PASEP must have exactly 11 digits to apply mask");
8
+ }
9
+ return `${match[1]}.${match[2]}.${match[3]}-${match[4]}`;
10
+ }
11
+
12
+ export { applyPisPasepMask };
13
+ //# sourceMappingURL=chunk-XFKSJRWM.js.map
14
+ //# sourceMappingURL=chunk-XFKSJRWM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/pis-pasep/mask.ts"],"names":[],"mappings":";;;AAGO,SAAS,kBAAkB,SAAA,EAA2B;AAC3D,EAAA,MAAM,KAAA,GAAQ,sBAAA,CAAuB,IAAA,CAAK,SAAS,CAAA;AACnD,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,MAAM,qDAAqD,CAAA;AAAA,EACvE;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-XFKSJRWM.js","sourcesContent":["import { PIS_PASEP_MASK_PATTERN } from './constants.js';\n\n/** Mask XXX.XXXXX.XX-X (BR-PIS-006). */\nexport function applyPisPasepMask(canonical: string): string {\n const match = PIS_PASEP_MASK_PATTERN.exec(canonical);\n if (!match) {\n throw new Error('PIS/PASEP must have exactly 11 digits to apply mask');\n }\n return `${match[1]}.${match[2]}.${match[3]}-${match[4]}`;\n}\n"]}
@@ -0,0 +1,33 @@
1
+ // src/ptax/data/metadata.json
2
+ var metadata_default = {
3
+ id: "ptax",
4
+ nome: "Bacen PTAX Fechamento",
5
+ fonte: "Banco Central Olinda PTAX API \u2014 Fechamento PTAX",
6
+ endpoints: [
7
+ "https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/CotacaoMoedaPeriodo(moeda=@moeda,dataInicial=@dataInicial,dataFinalCotacao=@dataFinalCotacao)",
8
+ "https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/swagger-ui3"
9
+ ],
10
+ capturadoEm: "2026-06-25",
11
+ atualizadoEm: "2026-06-25T11:33:19.099Z",
12
+ contagens: {
13
+ cotacoes: 40,
14
+ moedas: 10,
15
+ diasUteis: 4
16
+ },
17
+ alteracoes: {
18
+ adicionados: 40,
19
+ removidos: 0,
20
+ alterados: 0,
21
+ comparadoCom: null
22
+ },
23
+ verificacao: {
24
+ agendamento: "diario",
25
+ workflow: "data-refresh-bot.yml",
26
+ ultimaExecucao: "2026-06-25T11:33:19.099Z"
27
+ },
28
+ documentacao: "docs/OFFICIAL-SOURCES.md#ptax-cotacoes"
29
+ };
30
+
31
+ export { metadata_default };
32
+ //# sourceMappingURL=chunk-XHHJTKSP.js.map
33
+ //# sourceMappingURL=chunk-XHHJTKSP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ptax/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,MAAA;AAAA,EACN,IAAA,EAAQ,uBAAA;AAAA,EACR,KAAA,EAAS,sDAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,6JAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,QAAA,EAAY,EAAA;AAAA,IACZ,MAAA,EAAU,EAAA;AAAA,IACV,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,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-XHHJTKSP.js","sourcesContent":["{\n \"id\": \"ptax\",\n \"nome\": \"Bacen PTAX Fechamento\",\n \"fonte\": \"Banco Central Olinda PTAX API — Fechamento PTAX\",\n \"endpoints\": [\n \"https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/CotacaoMoedaPeriodo(moeda=@moeda,dataInicial=@dataInicial,dataFinalCotacao=@dataFinalCotacao)\",\n \"https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/swagger-ui3\"\n ],\n \"capturadoEm\": \"2026-06-25\",\n \"atualizadoEm\": \"2026-06-25T11:33:19.099Z\",\n \"contagens\": {\n \"cotacoes\": 40,\n \"moedas\": 10,\n \"diasUteis\": 4\n },\n \"alteracoes\": {\n \"adicionados\": 40,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": null\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-25T11:33:19.099Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#ptax-cotacoes\"\n}\n"]}