@br-validators/core 1.3.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/README.md +44 -15
  2. package/dist/aeroportos.d.ts +46 -0
  3. package/dist/aeroportos.js +4316 -0
  4. package/dist/aeroportos.js.map +1 -0
  5. package/dist/batch.d.ts +3 -3
  6. package/dist/batch.js +24 -22
  7. package/dist/boleto.d.ts +2 -2
  8. package/dist/boleto.js +5 -5
  9. package/dist/brcode.d.ts +2 -2
  10. package/dist/brcode.js +7 -7
  11. package/dist/cartao-credito.d.ts +2 -2
  12. package/dist/cartao-credito.js +3 -3
  13. package/dist/cep.d.ts +2 -2
  14. package/dist/cep.js +3 -3
  15. package/dist/cest.d.ts +44 -0
  16. package/dist/cest.js +8253 -0
  17. package/dist/cest.js.map +1 -0
  18. package/dist/{chunk-NT3TNF3R.js → chunk-24JBIV3A.js} +3 -3
  19. package/dist/{chunk-NT3TNF3R.js.map → chunk-24JBIV3A.js.map} +1 -1
  20. package/dist/{chunk-XHDRWM46.js → chunk-26MSDS43.js} +3 -3
  21. package/dist/{chunk-XHDRWM46.js.map → chunk-26MSDS43.js.map} +1 -1
  22. package/dist/{chunk-3LMDBXU6.js → chunk-2JSOXG2M.js} +3 -3
  23. package/dist/{chunk-3LMDBXU6.js.map → chunk-2JSOXG2M.js.map} +1 -1
  24. package/dist/{chunk-AU6TW3GH.js → chunk-3DLNIUBY.js} +5 -5
  25. package/dist/{chunk-AU6TW3GH.js.map → chunk-3DLNIUBY.js.map} +1 -1
  26. package/dist/{chunk-OOUEURR7.js → chunk-3JAYOBSG.js} +3 -3
  27. package/dist/{chunk-OOUEURR7.js.map → chunk-3JAYOBSG.js.map} +1 -1
  28. package/dist/chunk-3WXLMV7Q.js +3 -0
  29. package/dist/chunk-3WXLMV7Q.js.map +1 -0
  30. package/dist/chunk-475HS4CJ.js +30 -0
  31. package/dist/chunk-475HS4CJ.js.map +1 -0
  32. package/dist/{chunk-NUQSMT4Y.js → chunk-4NFEM2SU.js} +9 -3
  33. package/dist/chunk-4NFEM2SU.js.map +1 -0
  34. package/dist/chunk-6EF7GQRS.js +30 -0
  35. package/dist/chunk-6EF7GQRS.js.map +1 -0
  36. package/dist/{chunk-ZTDLGGYE.js → chunk-6VNCWSHA.js} +34 -17
  37. package/dist/chunk-6VNCWSHA.js.map +1 -0
  38. package/dist/{chunk-MZDCVTN6.js → chunk-72EZ2VUO.js} +4 -4
  39. package/dist/{chunk-MZDCVTN6.js.map → chunk-72EZ2VUO.js.map} +1 -1
  40. package/dist/chunk-7JCJGLA3.js +30 -0
  41. package/dist/chunk-7JCJGLA3.js.map +1 -0
  42. package/dist/{chunk-VKG7UEN5.js → chunk-A5UHVGRB.js} +3 -3
  43. package/dist/{chunk-VKG7UEN5.js.map → chunk-A5UHVGRB.js.map} +1 -1
  44. package/dist/{chunk-EN7PVDYB.js → chunk-C7WXL7UR.js} +4 -4
  45. package/dist/{chunk-EN7PVDYB.js.map → chunk-C7WXL7UR.js.map} +1 -1
  46. package/dist/{chunk-DYX5XSJ6.js → chunk-CGN5ST5W.js} +5 -3
  47. package/dist/{chunk-DYX5XSJ6.js.map → chunk-CGN5ST5W.js.map} +1 -1
  48. package/dist/{chunk-P6TOL5VY.js → chunk-CJKVA7VS.js} +3 -3
  49. package/dist/{chunk-P6TOL5VY.js.map → chunk-CJKVA7VS.js.map} +1 -1
  50. package/dist/{chunk-KGCLQ7QX.js → chunk-CNJ4DIYS.js} +3 -3
  51. package/dist/{chunk-KGCLQ7QX.js.map → chunk-CNJ4DIYS.js.map} +1 -1
  52. package/dist/{chunk-N6RQICAP.js → chunk-CYBWPBXJ.js} +4 -4
  53. package/dist/{chunk-N6RQICAP.js.map → chunk-CYBWPBXJ.js.map} +1 -1
  54. package/dist/{chunk-SDEJD2J7.js → chunk-DLXE3RNI.js} +3 -3
  55. package/dist/{chunk-SDEJD2J7.js.map → chunk-DLXE3RNI.js.map} +1 -1
  56. package/dist/chunk-DVA6QQUF.js +22 -0
  57. package/dist/chunk-DVA6QQUF.js.map +1 -0
  58. package/dist/{chunk-54UWHK5L.js → chunk-EGDZGSHA.js} +3 -3
  59. package/dist/{chunk-54UWHK5L.js.map → chunk-EGDZGSHA.js.map} +1 -1
  60. package/dist/chunk-EKOSTVIA.js +30 -0
  61. package/dist/chunk-EKOSTVIA.js.map +1 -0
  62. package/dist/{chunk-O3T7PUBI.js → chunk-F5OHOWZU.js} +3 -3
  63. package/dist/{chunk-O3T7PUBI.js.map → chunk-F5OHOWZU.js.map} +1 -1
  64. package/dist/chunk-F7IEPT22.js +30 -0
  65. package/dist/chunk-F7IEPT22.js.map +1 -0
  66. package/dist/{chunk-RMTHCPIV.js → chunk-FLZGOGER.js} +4 -4
  67. package/dist/{chunk-RMTHCPIV.js.map → chunk-FLZGOGER.js.map} +1 -1
  68. package/dist/chunk-FUYDR7JI.js +44 -0
  69. package/dist/chunk-FUYDR7JI.js.map +1 -0
  70. package/dist/chunk-G557DGIX.js +398 -0
  71. package/dist/chunk-G557DGIX.js.map +1 -0
  72. package/dist/{chunk-ITHT54NC.js → chunk-HZWERBZB.js} +37 -17
  73. package/dist/chunk-HZWERBZB.js.map +1 -0
  74. package/dist/{chunk-AO6UTQ4A.js → chunk-IJ2DAVSD.js} +3 -3
  75. package/dist/{chunk-AO6UTQ4A.js.map → chunk-IJ2DAVSD.js.map} +1 -1
  76. package/dist/chunk-ILKF7HP7.js +31 -0
  77. package/dist/chunk-ILKF7HP7.js.map +1 -0
  78. package/dist/{chunk-MAM4U3UR.js → chunk-IRERFIL5.js} +3 -3
  79. package/dist/{chunk-MAM4U3UR.js.map → chunk-IRERFIL5.js.map} +1 -1
  80. package/dist/{chunk-CSRBRKXY.js → chunk-ISMIJ5DH.js} +3 -3
  81. package/dist/{chunk-CSRBRKXY.js.map → chunk-ISMIJ5DH.js.map} +1 -1
  82. package/dist/{chunk-L7PF4KD6.js → chunk-LBAWZ4EV.js} +3 -3
  83. package/dist/{chunk-L7PF4KD6.js.map → chunk-LBAWZ4EV.js.map} +1 -1
  84. package/dist/{chunk-QK27VDVB.js → chunk-LCY6USO2.js} +35 -18
  85. package/dist/chunk-LCY6USO2.js.map +1 -0
  86. package/dist/{chunk-XWHGXSQV.js → chunk-LPGSPM53.js} +3 -3
  87. package/dist/{chunk-XWHGXSQV.js.map → chunk-LPGSPM53.js.map} +1 -1
  88. package/dist/{chunk-5EJAENH5.js → chunk-MDFK6L72.js} +3 -3
  89. package/dist/{chunk-5EJAENH5.js.map → chunk-MDFK6L72.js.map} +1 -1
  90. package/dist/chunk-NQIDHQ6U.js +3 -0
  91. package/dist/chunk-NQIDHQ6U.js.map +1 -0
  92. package/dist/chunk-NTVB7R3A.js +30 -0
  93. package/dist/chunk-NTVB7R3A.js.map +1 -0
  94. package/dist/chunk-O4AO4YWC.js +30 -0
  95. package/dist/chunk-O4AO4YWC.js.map +1 -0
  96. package/dist/{chunk-S4WWYHQM.js → chunk-OH4CXHFH.js} +13 -3
  97. package/dist/chunk-OH4CXHFH.js.map +1 -0
  98. package/dist/{chunk-B6A7VF4R.js → chunk-OWD47AWI.js} +3 -3
  99. package/dist/{chunk-B6A7VF4R.js.map → chunk-OWD47AWI.js.map} +1 -1
  100. package/dist/{chunk-QB7SZS2C.js → chunk-OY53JDPO.js} +40 -19
  101. package/dist/chunk-OY53JDPO.js.map +1 -0
  102. package/dist/{chunk-665E36SC.js → chunk-P3EJRH4P.js} +4 -4
  103. package/dist/{chunk-665E36SC.js.map → chunk-P3EJRH4P.js.map} +1 -1
  104. package/dist/{chunk-GWAYWBHN.js → chunk-PTZR6C7Y.js} +14 -6
  105. package/dist/chunk-PTZR6C7Y.js.map +1 -0
  106. package/dist/{chunk-E2EFGMWA.js → chunk-QSSKPIG5.js} +3 -3
  107. package/dist/{chunk-E2EFGMWA.js.map → chunk-QSSKPIG5.js.map} +1 -1
  108. package/dist/{chunk-FBARVLLP.js → chunk-RSJK46ZE.js} +3 -3
  109. package/dist/{chunk-FBARVLLP.js.map → chunk-RSJK46ZE.js.map} +1 -1
  110. package/dist/chunk-RWO34ORS.js +33 -0
  111. package/dist/chunk-RWO34ORS.js.map +1 -0
  112. package/dist/{chunk-JSNXKBZA.js → chunk-SH6K4PUU.js} +3 -3
  113. package/dist/{chunk-JSNXKBZA.js.map → chunk-SH6K4PUU.js.map} +1 -1
  114. package/dist/{chunk-EQV33L7H.js → chunk-T5NFIPTU.js} +3 -3
  115. package/dist/{chunk-EQV33L7H.js.map → chunk-T5NFIPTU.js.map} +1 -1
  116. package/dist/{chunk-CDNOUZEI.js → chunk-TAOFFAG3.js} +3 -3
  117. package/dist/{chunk-CDNOUZEI.js.map → chunk-TAOFFAG3.js.map} +1 -1
  118. package/dist/{chunk-YD5MPZWY.js → chunk-TTDHGQEC.js} +3 -3
  119. package/dist/{chunk-YD5MPZWY.js.map → chunk-TTDHGQEC.js.map} +1 -1
  120. package/dist/{chunk-JLCQ7MGC.js → chunk-ULNZHOMA.js} +3 -3
  121. package/dist/{chunk-JLCQ7MGC.js.map → chunk-ULNZHOMA.js.map} +1 -1
  122. package/dist/{chunk-KLONQL76.js → chunk-UTSZKJAL.js} +7 -7
  123. package/dist/{chunk-KLONQL76.js.map → chunk-UTSZKJAL.js.map} +1 -1
  124. package/dist/{chunk-ANWQBKGN.js → chunk-VDCITFZG.js} +3 -3
  125. package/dist/{chunk-ANWQBKGN.js.map → chunk-VDCITFZG.js.map} +1 -1
  126. package/dist/chunk-VE2XZSKP.js +150 -0
  127. package/dist/chunk-VE2XZSKP.js.map +1 -0
  128. package/dist/{chunk-NHFSEWO2.js → chunk-VJT3UGN2.js} +34 -19
  129. package/dist/chunk-VJT3UGN2.js.map +1 -0
  130. package/dist/{chunk-SKDMG3FK.js → chunk-W2K4RQ3M.js} +33 -33
  131. package/dist/{chunk-SKDMG3FK.js.map → chunk-W2K4RQ3M.js.map} +1 -1
  132. package/dist/{chunk-VSW3NBJQ.js → chunk-WAYYRZ2L.js} +3 -3
  133. package/dist/{chunk-VSW3NBJQ.js.map → chunk-WAYYRZ2L.js.map} +1 -1
  134. package/dist/{chunk-JKDU7QYP.js → chunk-Z7KH65RZ.js} +3 -3
  135. package/dist/{chunk-JKDU7QYP.js.map → chunk-Z7KH65RZ.js.map} +1 -1
  136. package/dist/chunk-ZWAYSR5K.js +30 -0
  137. package/dist/chunk-ZWAYSR5K.js.map +1 -0
  138. package/dist/cnh.d.ts +2 -2
  139. package/dist/cnh.js +3 -3
  140. package/dist/cnpj.d.ts +2 -2
  141. package/dist/cnpj.js +4 -4
  142. package/dist/compare.d.ts +3 -3
  143. package/dist/compare.js +26 -24
  144. package/dist/cpf.d.ts +2 -2
  145. package/dist/cpf.js +4 -4
  146. package/dist/data-catalog.js +33 -11
  147. package/dist/data-catalog.js.map +1 -1
  148. package/dist/detect.d.ts +2 -2
  149. package/dist/detect.js +22 -21
  150. package/dist/diff.d.ts +3 -3
  151. package/dist/diff.js +26 -24
  152. package/dist/generate.d.ts +1 -1
  153. package/dist/generate.js +35 -35
  154. package/dist/incoterms.d.ts +36 -0
  155. package/dist/incoterms.js +87 -0
  156. package/dist/incoterms.js.map +1 -0
  157. package/dist/{index-BEJFgDXj.d.ts → index-CJ5ACErT.d.ts} +2 -2
  158. package/dist/index.d.ts +8 -6
  159. package/dist/index.js +62 -57
  160. package/dist/index.js.map +1 -1
  161. package/dist/{inscricao-estadual-produtor-rural-BXFVQscj.d.ts → inscricao-estadual-produtor-rural-BNAyLQPY.d.ts} +1 -1
  162. package/dist/inscricao-estadual-produtor-rural.d.ts +2 -2
  163. package/dist/inscricao-estadual-produtor-rural.js +3 -3
  164. package/dist/inscricao-estadual.d.ts +3 -3
  165. package/dist/inscricao-estadual.js +4 -4
  166. package/dist/mask.d.ts +3 -3
  167. package/dist/mask.js +36 -33
  168. package/dist/moedas.d.ts +42 -0
  169. package/dist/moedas.js +977 -0
  170. package/dist/moedas.js.map +1 -0
  171. package/dist/natureza-juridica.d.ts +37 -0
  172. package/dist/natureza-juridica.js +398 -0
  173. package/dist/natureza-juridica.js.map +1 -0
  174. package/dist/nbs.d.ts +40 -0
  175. package/dist/nbs.js +3728 -0
  176. package/dist/nbs.js.map +1 -0
  177. package/dist/nfe-chave.d.ts +2 -2
  178. package/dist/nfe-chave.js +3 -3
  179. package/dist/paises-bacen.d.ts +35 -0
  180. package/dist/paises-bacen.js +1044 -0
  181. package/dist/paises-bacen.js.map +1 -0
  182. package/dist/pis-pasep.d.ts +2 -2
  183. package/dist/pis-pasep.js +3 -3
  184. package/dist/{pix-B4habHLG.d.ts → pix-QsM0lMas.d.ts} +1 -1
  185. package/dist/pix.d.ts +2 -2
  186. package/dist/pix.js +7 -7
  187. package/dist/placa.d.ts +2 -2
  188. package/dist/placa.js +3 -3
  189. package/dist/pncp-reference.d.ts +56 -0
  190. package/dist/pncp-reference.js +1560 -0
  191. package/dist/pncp-reference.js.map +1 -0
  192. package/dist/portos.d.ts +48 -0
  193. package/dist/portos.js +12094 -0
  194. package/dist/portos.js.map +1 -0
  195. package/dist/processo-judicial.d.ts +71 -0
  196. package/dist/processo-judicial.js +6 -0
  197. package/dist/processo-judicial.js.map +1 -0
  198. package/dist/renavam.d.ts +2 -2
  199. package/dist/renavam.js +3 -3
  200. package/dist/rg.d.ts +69 -0
  201. package/dist/rg.js +5 -0
  202. package/dist/rg.js.map +1 -0
  203. package/dist/sanitize.d.ts +2 -2
  204. package/dist/sanitize.js +21 -19
  205. package/dist/telefone.d.ts +2 -2
  206. package/dist/telefone.js +3 -3
  207. package/dist/titulo-eleitor.d.ts +2 -2
  208. package/dist/titulo-eleitor.js +3 -3
  209. package/dist/transparencia-snapshots.d.ts +61 -0
  210. package/dist/transparencia-snapshots.js +119 -0
  211. package/dist/transparencia-snapshots.js.map +1 -0
  212. package/dist/tse-municipios.d.ts +39 -0
  213. package/dist/tse-municipios.js +33469 -0
  214. package/dist/tse-municipios.js.map +1 -0
  215. package/dist/{types-MXifBcV5.d.ts → types-CQvCmvGu.d.ts} +2 -2
  216. package/dist/{validation-result-BaI2Xder.d.ts → validation-result-hfVg2-Mc.d.ts} +23 -3
  217. package/package.json +66 -1
  218. package/dist/chunk-GWAYWBHN.js.map +0 -1
  219. package/dist/chunk-ITHT54NC.js.map +0 -1
  220. package/dist/chunk-NHFSEWO2.js.map +0 -1
  221. package/dist/chunk-NUQSMT4Y.js.map +0 -1
  222. package/dist/chunk-QB7SZS2C.js.map +0 -1
  223. package/dist/chunk-QK27VDVB.js.map +0 -1
  224. package/dist/chunk-S4WWYHQM.js.map +0 -1
  225. package/dist/chunk-ZTDLGGYE.js.map +0 -1
@@ -1,20 +1,21 @@
1
- import { validateNfeChave, NFE_CHAVE_LENGTH } from './chunk-AO6UTQ4A.js';
2
- import { validatePisPasep } from './chunk-JLCQ7MGC.js';
3
- import { validatePlaca, PLACA_LENGTH } from './chunk-3LMDBXU6.js';
4
- import { validateTelefone } from './chunk-OOUEURR7.js';
5
- import { validateTituloEleitor } from './chunk-XHDRWM46.js';
6
- import { validateInscricaoEstadual } from './chunk-665E36SC.js';
7
- import { isSpRuralIeInput, validateIeProdutorRural } from './chunk-CDNOUZEI.js';
8
- import { validateCnh } from './chunk-VKG7UEN5.js';
9
- import { validateBoleto } from './chunk-AU6TW3GH.js';
10
- import { validateArrecadacao } from './chunk-N6RQICAP.js';
11
- import { detectBoletoInputKind } from './chunk-E2EFGMWA.js';
12
- import { validateBrCode } from './chunk-MZDCVTN6.js';
13
- import { validatePixKey } from './chunk-KLONQL76.js';
14
- import { validateCnpj, CNPJ_LENGTH } from './chunk-FBARVLLP.js';
15
- import { validateCpf } from './chunk-L7PF4KD6.js';
16
- import { validateCartaoCredito, CARTAO_PAN_MIN_LENGTH, CARTAO_PAN_MAX_LENGTH } from './chunk-ANWQBKGN.js';
17
- import { validateCep } from './chunk-P6TOL5VY.js';
1
+ import { validateProcessoJudicial, PROCESSO_JUDICIAL_MASKED_PATTERN, PROCESSO_JUDICIAL_LENGTH } from './chunk-VE2XZSKP.js';
2
+ import { validateTelefone } from './chunk-3JAYOBSG.js';
3
+ import { validateTituloEleitor } from './chunk-26MSDS43.js';
4
+ import { validatePisPasep } from './chunk-ULNZHOMA.js';
5
+ import { validatePlaca, PLACA_LENGTH } from './chunk-2JSOXG2M.js';
6
+ import { validateInscricaoEstadual } from './chunk-P3EJRH4P.js';
7
+ import { validateNfeChave, NFE_CHAVE_LENGTH } from './chunk-IJ2DAVSD.js';
8
+ import { isSpRuralIeInput, validateIeProdutorRural } from './chunk-TAOFFAG3.js';
9
+ import { validateCnh } from './chunk-A5UHVGRB.js';
10
+ import { validateBoleto } from './chunk-3DLNIUBY.js';
11
+ import { validateArrecadacao } from './chunk-CYBWPBXJ.js';
12
+ import { detectBoletoInputKind } from './chunk-QSSKPIG5.js';
13
+ import { validateBrCode } from './chunk-72EZ2VUO.js';
14
+ import { validatePixKey } from './chunk-UTSZKJAL.js';
15
+ import { validateCnpj, CNPJ_LENGTH } from './chunk-RSJK46ZE.js';
16
+ import { validateCpf } from './chunk-LBAWZ4EV.js';
17
+ import { validateCartaoCredito, CARTAO_PAN_MIN_LENGTH, CARTAO_PAN_MAX_LENGTH } from './chunk-VDCITFZG.js';
18
+ import { validateCep } from './chunk-CJKVA7VS.js';
18
19
 
19
20
  // src/detect/helpers.ts
20
21
  function stripDigits(input) {
@@ -101,6 +102,14 @@ function looksLikeTelefone(input) {
101
102
  const digits = stripDigits(input);
102
103
  return digits.length >= 10 && digits.length <= 13;
103
104
  }
105
+ function looksLikeProcessoJudicial(input) {
106
+ const trimmed = input.trim();
107
+ if (PROCESSO_JUDICIAL_MASKED_PATTERN.test(trimmed)) {
108
+ return true;
109
+ }
110
+ const digits = stripDigits(trimmed);
111
+ return digits.length === PROCESSO_JUDICIAL_LENGTH && /^\d+$/.test(digits);
112
+ }
104
113
 
105
114
  // src/detect/index.ts
106
115
  function success(type, value, format, meta) {
@@ -208,6 +217,18 @@ var CANDIDATES = [
208
217
  }
209
218
  ])
210
219
  },
220
+ {
221
+ canTry: (raw) => looksLikeProcessoJudicial(raw),
222
+ detect: (raw) => {
223
+ const result = validateProcessoJudicial(raw);
224
+ if (!result.ok) {
225
+ return null;
226
+ }
227
+ return success("processo-judicial", result.value, result.format, {
228
+ segments: result.segments
229
+ });
230
+ }
231
+ },
211
232
  {
212
233
  canTry: (raw) => looksLikeTituloEleitor(raw),
213
234
  detect: (raw) => {
@@ -319,5 +340,5 @@ function detect(raw, options = {}) {
319
340
  }
320
341
 
321
342
  export { detect };
322
- //# sourceMappingURL=chunk-QB7SZS2C.js.map
323
- //# sourceMappingURL=chunk-QB7SZS2C.js.map
343
+ //# sourceMappingURL=chunk-OY53JDPO.js.map
344
+ //# sourceMappingURL=chunk-OY53JDPO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/detect/helpers.ts","../src/detect/index.ts"],"names":["result"],"mappings":"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","file":"chunk-OY53JDPO.js","sourcesContent":["import { BOLETO_CODIGO_BARRAS_LENGTH, BOLETO_LINHA_LENGTH } from '../core/boleto/constants.js';\nimport { CARTAO_PAN_MAX_LENGTH, CARTAO_PAN_MIN_LENGTH } from '../core/cartao-credito/constants.js';\nimport { CNPJ_LENGTH } from '../core/cnpj/constants.js';\nimport { NFE_CHAVE_LENGTH } from '../core/nfe-chave/constants.js';\nimport { PROCESSO_JUDICIAL_LENGTH, PROCESSO_JUDICIAL_MASKED_PATTERN } from '../core/processo-judicial/constants.js';\nimport { PLACA_LENGTH } from '../core/placa/constants.js';\nimport { detectBoletoInputKind } from '../core/boleto/detect.js';\nimport { isSpRuralIeInput } from '../core/inscricao-estadual/sp-rural.js';\n\nexport function stripDigits(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function stripAlnumUpper(input: string): string {\n return input.replace(/[^A-Za-z0-9]/g, '').toUpperCase();\n}\n\nexport function hasLetters(input: string): boolean {\n return /[A-Za-z]/.test(input);\n}\n\nexport function looksLikeBrCode(input: string): boolean {\n const trimmed = input.trim();\n return trimmed.startsWith('00020') && trimmed.length > 20;\n}\n\nexport function looksLikeBoleto(input: string): boolean {\n const kind = detectBoletoInputKind(input);\n return kind === 'linha-digitavel' || kind === 'codigo-barras';\n}\n\nexport function isBoletoArrecadacao(input: string): boolean {\n return detectBoletoInputKind(input) === 'arrecadacao';\n}\n\nexport function looksLikeNfeChave(input: string): boolean {\n const digits = stripDigits(input);\n return digits.length === NFE_CHAVE_LENGTH && /^\\d+$/.test(digits);\n}\n\nexport function looksLikeCnpjNumeric(input: string): boolean {\n const digits = stripDigits(input);\n return digits.length === CNPJ_LENGTH && /^\\d+$/.test(digits);\n}\n\nexport function looksLikeCnpjAlphanumeric(input: string): boolean {\n const stripped = stripAlnumUpper(input);\n return stripped.length === CNPJ_LENGTH && hasLetters(input);\n}\n\nexport function looksLikeElevenDigits(input: string): boolean {\n const digits = stripDigits(input);\n return digits.length === 11 && /^\\d+$/.test(digits);\n}\n\nexport function looksLikeTituloEleitor(input: string): boolean {\n const digits = stripDigits(input);\n return digits.length === 12 && /^\\d+$/.test(digits);\n}\n\nexport function looksLikeCep(input: string): boolean {\n const digits = stripDigits(input);\n return digits.length === 8 && /^\\d+$/.test(digits);\n}\n\nexport function looksLikePlaca(input: string): boolean {\n const stripped = stripAlnumUpper(input);\n return stripped.length === PLACA_LENGTH && /^[A-Z0-9]+$/.test(stripped);\n}\n\nexport function looksLikeCartao(input: string): boolean {\n const withoutMask = input.replace(/[\\s-]/g, '');\n if (/[^0-9]/.test(withoutMask)) {\n return false;\n }\n const digits = stripDigits(input);\n return digits.length >= CARTAO_PAN_MIN_LENGTH && digits.length <= CARTAO_PAN_MAX_LENGTH;\n}\n\nexport function looksLikeIe(input: string, uf?: string): boolean {\n if (!uf) {\n return false;\n }\n if (uf === 'SP' && isSpRuralIeInput(input)) {\n return true;\n }\n const digits = stripDigits(input);\n return digits.length >= 8 && digits.length <= 14;\n}\n\nexport function looksLikePix(input: string): boolean {\n const trimmed = input.trim();\n if (trimmed.includes('@')) {\n return true;\n }\n if (/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(trimmed)) {\n return true;\n }\n if (/^\\+?\\d/.test(trimmed)) {\n const digits = stripDigits(trimmed);\n return digits.length === 11 || digits.length === 14;\n }\n return false;\n}\n\nexport function looksLikeTelefone(input: string): boolean {\n const digits = stripDigits(input);\n return digits.length >= 10 && digits.length <= 13;\n}\n\nexport function looksLikeProcessoJudicial(input: string): boolean {\n const trimmed = input.trim();\n if (PROCESSO_JUDICIAL_MASKED_PATTERN.test(trimmed)) {\n return true;\n }\n const digits = stripDigits(trimmed);\n return digits.length === PROCESSO_JUDICIAL_LENGTH && /^\\d+$/.test(digits);\n}\n\nexport {\n BOLETO_CODIGO_BARRAS_LENGTH,\n BOLETO_LINHA_LENGTH,\n};\n","/**\n * Unified document type detection — delegates to existing validators (BR-DETECT-001).\n * @see docs/VALIDATION-RULES.md\n */\nimport { validateArrecadacao } from '../core/boleto/arrecadacao.js';\nimport { validateBoleto } from '../core/boleto/index.js';\nimport { validateBrCode } from '../core/brcode/index.js';\nimport { validateCartaoCredito } from '../core/cartao-credito/index.js';\nimport { validateCep } from '../core/cep/index.js';\nimport { validateCnh } from '../core/cnh/index.js';\nimport { validateCnpj } from '../core/cnpj/index.js';\nimport { validateCpf } from '../core/cpf/index.js';\nimport { validateInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { validateIeProdutorRural } from '../core/inscricao-estadual/validate-produtor-rural.js';\nimport { isSpRuralIeInput } from '../core/inscricao-estadual/sp-rural.js';\nimport { validateNfeChave } from '../core/nfe-chave/index.js';\nimport { validatePisPasep } from '../core/pis-pasep/index.js';\nimport { validatePlaca } from '../core/placa/index.js';\nimport { validatePixKey } from '../core/pix/index.js';\nimport { validateTelefone } from '../core/telefone/index.js';\nimport { validateProcessoJudicial } from '../core/processo-judicial/index.js';\nimport { validateTituloEleitor } from '../core/titulo-eleitor/index.js';\nimport {\n isBoletoArrecadacao,\n looksLikeBoleto,\n looksLikeBrCode,\n looksLikeCartao,\n looksLikeCep,\n looksLikeCnpjAlphanumeric,\n looksLikeCnpjNumeric,\n looksLikeElevenDigits,\n looksLikeIe,\n looksLikeNfeChave,\n looksLikePix,\n looksLikePlaca,\n looksLikeTelefone,\n looksLikeProcessoJudicial,\n looksLikeTituloEleitor,\n} from './helpers.js';\nimport type { DocumentFormat, UfCode, ValidationErrorCode } from '../types/validation-result.js';\n\nexport type DetectableDocumentType =\n | 'cpf'\n | 'cnpj'\n | 'cep'\n | 'placa'\n | 'pis-pasep'\n | 'pix'\n | 'telefone'\n | 'boleto'\n | 'cartao-credito'\n | 'cnh'\n | 'renavam'\n | 'nfe-chave'\n | 'titulo-eleitor'\n | 'processo-judicial'\n | 'inscricao-estadual'\n | 'inscricao-estadual-produtor-rural'\n | 'brcode'\n | 'unknown';\n\nexport type DetectOptions = {\n uf?: UfCode;\n};\n\nexport type DetectSuccess = {\n type: DetectableDocumentType;\n ok: true;\n value: string;\n format?: DocumentFormat;\n meta?: Record<string, unknown>;\n};\n\nexport type DetectFailure = {\n type: DetectableDocumentType;\n ok: false;\n code: ValidationErrorCode;\n message: string;\n};\n\nexport type DetectResult = DetectSuccess | DetectFailure;\n\ntype Candidate = {\n canTry: (raw: string, options: DetectOptions) => boolean;\n detect: (raw: string, options: DetectOptions) => DetectResult | null;\n};\n\n/** @internal Test hook for success result branches. */\nexport function buildDetectSuccess(\n type: DetectableDocumentType,\n value: string,\n format?: DocumentFormat,\n meta?: Record<string, unknown>,\n): DetectResult {\n return success(type, value, format, meta);\n}\n\nfunction success(\n type: DetectableDocumentType,\n value: string,\n format?: DocumentFormat,\n meta?: Record<string, unknown>,\n): DetectResult {\n return { type, ok: true, value, ...(format ? { format } : {}), ...(meta ? { meta } : {}) };\n}\n\nfunction tryValidators(attempts: Array<() => DetectResult | null>): DetectResult | null {\n for (const attempt of attempts) {\n const result = attempt();\n if (result) {\n return result;\n }\n }\n return null;\n}\n\nconst CANDIDATES: Candidate[] = [\n {\n canTry: (raw) => isBoletoArrecadacao(raw),\n detect: (raw) => {\n const result = validateArrecadacao(raw);\n if (!result.ok) {\n return null;\n }\n return success('boleto', result.value, 'arrecadacao', {\n inputKind: result.inputKind,\n segment: result.segment,\n valueType: result.valueType,\n });\n },\n },\n {\n canTry: (raw) => looksLikeBoleto(raw) && !isBoletoArrecadacao(raw),\n detect: (raw) => {\n const result = validateBoleto(raw);\n if (!result.ok || result.format === 'arrecadacao') {\n return null;\n }\n return success('boleto', result.value, result.format, {\n inputKind: result.inputKind,\n situacao: result.situacao,\n });\n },\n },\n {\n canTry: (raw) => looksLikeNfeChave(raw),\n detect: (raw) => {\n const result = validateNfeChave(raw);\n if (!result.ok) {\n return null;\n }\n return success('nfe-chave', result.value, result.format, {\n parsed: result.parsed,\n uf: result.uf,\n });\n },\n },\n {\n canTry: (raw) => looksLikeBrCode(raw),\n detect: (raw) => {\n const result = validateBrCode(raw);\n if (!result.ok) {\n return null;\n }\n return success('brcode', result.value, result.format, {\n merchantName: result.merchantName,\n merchantCity: result.merchantCity,\n pixKey: result.pixKey,\n pixKeyType: result.pixKeyType,\n });\n },\n },\n {\n canTry: (raw) => looksLikeCnpjAlphanumeric(raw),\n detect: (raw) => {\n const result = validateCnpj(raw);\n if (!result.ok) {\n return null;\n }\n return success('cnpj', result.value, result.format);\n },\n },\n {\n canTry: (raw) => looksLikeCnpjNumeric(raw),\n detect: (raw) => {\n const result = validateCnpj(raw);\n if (!result.ok) {\n return null;\n }\n return success('cnpj', result.value, result.format);\n },\n },\n {\n canTry: (raw) => looksLikeElevenDigits(raw),\n detect: (raw) =>\n tryValidators([\n () => {\n const result = validateCpf(raw);\n return result.ok ? success('cpf', result.value, result.format) : null;\n },\n () => {\n const result = validateCnh(raw);\n return result.ok ? success('cnh', result.value, result.format) : null;\n },\n () => {\n const result = validatePisPasep(raw);\n return result.ok ? success('pis-pasep', result.value, result.format) : null;\n },\n ]),\n },\n {\n canTry: (raw) => looksLikeProcessoJudicial(raw),\n detect: (raw) => {\n const result = validateProcessoJudicial(raw);\n if (!result.ok) {\n return null;\n }\n return success('processo-judicial', result.value, result.format, {\n segments: result.segments,\n });\n },\n },\n {\n canTry: (raw) => looksLikeTituloEleitor(raw),\n detect: (raw) => {\n const result = validateTituloEleitor(raw);\n if (!result.ok) {\n return null;\n }\n return success('titulo-eleitor', result.value, result.format, {\n ufCode: result.ufCode,\n ...(result.uf ? { uf: result.uf } : {}),\n ...(result.exterior ? { exterior: result.exterior } : {}),\n });\n },\n },\n {\n canTry: (raw) => looksLikeCep(raw),\n detect: (raw) => {\n const result = validateCep(raw);\n if (!result.ok) {\n return null;\n }\n return success('cep', result.value, result.format);\n },\n },\n {\n canTry: (raw) => looksLikePlaca(raw),\n detect: (raw) => {\n const result = validatePlaca(raw);\n if (!result.ok) {\n return null;\n }\n return success('placa', result.value, result.format);\n },\n },\n {\n canTry: (raw) => looksLikePix(raw),\n detect: (raw) => {\n const result = validatePixKey(raw);\n if (!result.ok) {\n return null;\n }\n return success('pix', result.value, result.format, { keyType: result.keyType });\n },\n },\n {\n canTry: (raw) => looksLikeTelefone(raw),\n detect: (raw) => {\n const result = validateTelefone(raw);\n if (!result.ok) {\n return null;\n }\n return success('telefone', result.value, result.format, { tipo: result.tipo });\n },\n },\n {\n canTry: (raw) => looksLikeCartao(raw),\n detect: (raw) => {\n const result = validateCartaoCredito(raw);\n if (!result.ok) {\n return null;\n }\n return success('cartao-credito', result.value, result.format, { brand: result.brand });\n },\n },\n {\n canTry: (raw, options) => looksLikeIe(raw, options.uf),\n detect: (raw, options) => {\n const uf = options.uf as UfCode;\n if (uf === 'SP' && isSpRuralIeInput(raw)) {\n const result = validateIeProdutorRural(uf, raw);\n if (!result.ok) {\n return null;\n }\n return success('inscricao-estadual-produtor-rural', result.value, result.format, { uf: result.uf });\n }\n const result = validateInscricaoEstadual(raw, { uf });\n if (!result.ok) {\n return null;\n }\n return success('inscricao-estadual', result.value, result.format, { uf: result.uf });\n },\n },\n];\n\nexport function detect(raw: string, options: DetectOptions = {}): DetectResult {\n const trimmed = raw.trim();\n if (trimmed.length === 0) {\n return {\n type: 'unknown',\n ok: false,\n code: 'EMPTY_INPUT',\n message: 'Input is empty',\n };\n }\n\n for (const candidate of CANDIDATES) {\n if (!candidate.canTry(trimmed, options)) {\n continue;\n }\n const result = candidate.detect(trimmed, options);\n if (result?.ok) {\n return result;\n }\n }\n\n return {\n type: 'unknown',\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: options.uf\n ? 'No supported document type matched the input'\n : 'No supported document type matched the input; provide options.uf for Inscrição Estadual detection',\n };\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { IE_DF_LENGTH, IE_DF_PREFIX, computeIeDfCheckDigit, IE_DF_DV1_WEIGHTS, IE_DF_DV2_WEIGHTS, IE_MT_CANONICAL_LENGTH, IE_MT_LEGACY_LENGTH, IE_MT_PREFIX, computeIeMtCheckDigit, IE_SP_LENGTH, computeIeSpCheckDigit, IE_SP_DV1_WEIGHTS, IE_SP_DV2_WEIGHTS, IE_OFFICIAL_SOURCE_URLS, applyIeSpMask, applyIeDfMask, IE_SUPPORTED_UFS, IE_TO_LEGACY_PREFIXES, computeIeToCheckDigit, computeIeCyclicMod11CheckDigit, IE_RR_PREFIX, computeIeRrCheckDigit, computeIeRoCheckDigit, IE_RN_PREFIX, computeIePrStyleCheckDigit, computeIePeCheckDigit, IE_PA_PREFIX, IE_MS_PREFIX, computeIeMgFirstCheckDigit, computeIeMgSecondCheckDigit, IE_MA_PREFIX, IE_GO_PREFIXES, computeIeGoCheckDigit, computeIeCeCheckDigit, computeIeBaModule, computeIeBaCheckDigit, IE_AP_PREFIX, computeIeApCheckDigit, computeIeAmCheckDigit, IE_AL_PREFIX, computeIeAlCheckDigit, IE_AC_PREFIX, computeIeAcCheckDigit } from './chunk-CDNOUZEI.js';
2
- import { brandInscricaoEstadual } from './chunk-NUQSMT4Y.js';
1
+ import { IE_DF_LENGTH, IE_DF_PREFIX, computeIeDfCheckDigit, IE_DF_DV1_WEIGHTS, IE_DF_DV2_WEIGHTS, IE_MT_CANONICAL_LENGTH, IE_MT_LEGACY_LENGTH, IE_MT_PREFIX, computeIeMtCheckDigit, IE_SP_LENGTH, computeIeSpCheckDigit, IE_SP_DV1_WEIGHTS, IE_SP_DV2_WEIGHTS, IE_OFFICIAL_SOURCE_URLS, applyIeSpMask, applyIeDfMask, IE_SUPPORTED_UFS, IE_TO_LEGACY_PREFIXES, computeIeToCheckDigit, computeIeCyclicMod11CheckDigit, IE_RR_PREFIX, computeIeRrCheckDigit, computeIeRoCheckDigit, IE_RN_PREFIX, computeIePrStyleCheckDigit, computeIePeCheckDigit, IE_PA_PREFIX, IE_MS_PREFIX, computeIeMgFirstCheckDigit, computeIeMgSecondCheckDigit, IE_MA_PREFIX, IE_GO_PREFIXES, computeIeGoCheckDigit, computeIeCeCheckDigit, computeIeBaModule, computeIeBaCheckDigit, IE_AP_PREFIX, computeIeApCheckDigit, computeIeAmCheckDigit, IE_AL_PREFIX, computeIeAlCheckDigit, IE_AC_PREFIX, computeIeAcCheckDigit } from './chunk-TAOFFAG3.js';
2
+ import { brandInscricaoEstadual } from './chunk-4NFEM2SU.js';
3
3
 
4
4
  // src/core/inscricao-estadual/df.ts
5
5
  var DF_MASK_PATTERN = /^[0-9.-]+$/;
@@ -799,5 +799,5 @@ function formatInscricaoEstadual(input, options) {
799
799
  }
800
800
 
801
801
  export { formatInscricaoEstadual, getIeOfficialSourceUrl, isValidInscricaoEstadual, stripInscricaoEstadual, validateIeDf, validateIeMt, validateIeSp, validateInscricaoEstadual };
802
- //# sourceMappingURL=chunk-665E36SC.js.map
803
- //# sourceMappingURL=chunk-665E36SC.js.map
802
+ //# sourceMappingURL=chunk-P3EJRH4P.js.map
803
+ //# sourceMappingURL=chunk-P3EJRH4P.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/inscricao-estadual/df.ts","../src/core/inscricao-estadual/mt.ts","../src/core/inscricao-estadual/sp.ts","../src/core/inscricao-estadual/ie-common.ts","../src/core/inscricao-estadual/ac.ts","../src/core/inscricao-estadual/al.ts","../src/core/inscricao-estadual/am.ts","../src/core/inscricao-estadual/ap.ts","../src/core/inscricao-estadual/ba.ts","../src/core/inscricao-estadual/ce.ts","../src/core/inscricao-estadual/es.ts","../src/core/inscricao-estadual/go.ts","../src/core/inscricao-estadual/ma.ts","../src/core/inscricao-estadual/mg.ts","../src/core/inscricao-estadual/ms.ts","../src/core/inscricao-estadual/pa.ts","../src/core/inscricao-estadual/pb.ts","../src/core/inscricao-estadual/pe.ts","../src/core/inscricao-estadual/pi.ts","../src/core/inscricao-estadual/pr.ts","../src/core/inscricao-estadual/rj.ts","../src/core/inscricao-estadual/rn.ts","../src/core/inscricao-estadual/ro.ts","../src/core/inscricao-estadual/rr.ts","../src/core/inscricao-estadual/rs.ts","../src/core/inscricao-estadual/sc.ts","../src/core/inscricao-estadual/se.ts","../src/core/inscricao-estadual/to.ts","../src/core/inscricao-estadual/index.ts"],"names":["failure","UF","LENGTH"],"mappings":"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","file":"chunk-665E36SC.js","sourcesContent":["/**\n * Distrito Federal IE validation — CF/DF 13 digits, dual modulo-11 DVs.\n * @see BR-IE-DF-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { brandInscricaoEstadual } from '../../types/validation-result.js';\nimport { IE_DF_DV1_WEIGHTS, IE_DF_DV2_WEIGHTS, IE_DF_LENGTH, IE_DF_PREFIX } from './constants.js';\nimport { computeIeDfCheckDigit } from './modulo-ie.js';\n\ntype FailedResult = Extract<InscricaoEstadualValidationResult, { ok: false }>;\n\nconst DF_MASK_PATTERN = /^[0-9.-]+$/;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, uf: 'DF' };\n}\n\nexport function stripIeDf(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function validateIeDf(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Inscrição Estadual input is empty', uf: 'DF' };\n }\n\n if (!DF_MASK_PATTERN.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'DF Inscrição Estadual contains invalid characters');\n }\n\n const stripped = stripIeDf(trimmed);\n if (stripped.length === 12) {\n return failure('INVALID_LENGTH', 'DF Inscrição Estadual legacy 12-digit format is not supported; use 13 digits');\n }\n\n if (stripped.length !== IE_DF_LENGTH) {\n return failure('INVALID_LENGTH', `DF Inscrição Estadual must have ${IE_DF_LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_DF_PREFIX)) {\n return failure('UNSUPPORTED_FORMAT', 'DF Inscrição Estadual must start with prefix 07');\n }\n\n const dv1 = computeIeDfCheckDigit(stripped.slice(0, 11), IE_DF_DV1_WEIGHTS);\n const dv2 = computeIeDfCheckDigit(stripped.slice(0, 11), IE_DF_DV2_WEIGHTS, true, dv1);\n\n if (Number(stripped.charAt(11)) !== dv1 || Number(stripped.charAt(12)) !== dv2) {\n return failure('INVALID_CHECK_DIGIT', 'DF Inscrição Estadual check digits are invalid');\n }\n\n return {\n ok: true,\n value: brandInscricaoEstadual(stripped),\n uf: 'DF',\n format: 'inscricao-estadual',\n };\n}\n","/**\n * Mato Grosso IE validation — CCE/MT 9-digit + legacy 11-digit SINTEGRA pad.\n * @see BR-IE-MT-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { brandInscricaoEstadual } from '../../types/validation-result.js';\nimport {\n IE_MT_CANONICAL_LENGTH,\n IE_MT_LEGACY_LENGTH,\n IE_MT_PREFIX,\n} from './constants.js';\nimport { computeIeMtCheckDigit } from './modulo-ie.js';\n\ntype FailedResult = Extract<InscricaoEstadualValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, uf: 'MT' };\n}\n\nexport function stripIeMt(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function normalizeMtToCanonical(padded11: string): string {\n const trimmed = padded11.replace(/^0+/, '');\n return trimmed.length === IE_MT_CANONICAL_LENGTH ? trimmed : padded11.slice(-IE_MT_CANONICAL_LENGTH);\n}\n\nexport function padMtLegacy(stripped: string): string | null {\n if (stripped.length < IE_MT_CANONICAL_LENGTH || stripped.length > IE_MT_LEGACY_LENGTH) {\n return null;\n }\n return stripped.padStart(IE_MT_LEGACY_LENGTH, '0');\n}\n\nexport function validateIeMt(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Inscrição Estadual input is empty', uf: 'MT' };\n }\n\n if (/[^0-9.\\-\\s]/.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'MT Inscrição Estadual contains invalid characters');\n }\n\n const stripped = stripIeMt(trimmed);\n if (stripped.length < IE_MT_CANONICAL_LENGTH || stripped.length > IE_MT_LEGACY_LENGTH) {\n return failure(\n 'INVALID_LENGTH',\n `MT Inscrição Estadual must have ${IE_MT_CANONICAL_LENGTH} or ${IE_MT_LEGACY_LENGTH} digits after normalization`,\n );\n }\n\n const padded =\n stripped.length === IE_MT_LEGACY_LENGTH ? stripped : stripped.padStart(IE_MT_LEGACY_LENGTH, '0');\n const canonical = normalizeMtToCanonical(padded);\n if (!canonical.startsWith(IE_MT_PREFIX)) {\n return failure('UNSUPPORTED_FORMAT', 'MT Inscrição Estadual must start with prefix 13');\n }\n\n const expectedDv = computeIeMtCheckDigit(padded.slice(0, 10));\n if (Number(padded.charAt(10)) !== expectedDv) {\n return failure('INVALID_CHECK_DIGIT', 'MT Inscrição Estadual check digit is invalid');\n }\n\n return {\n ok: true,\n value: brandInscricaoEstadual(canonical),\n uf: 'MT',\n format: 'inscricao-estadual',\n };\n}\n","/**\n * São Paulo IE validation — dual modulo-11 DVs (SEFAZ 2012).\n * @see BR-IE-SP-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { brandInscricaoEstadual } from '../../types/validation-result.js';\nimport { IE_SP_DV1_WEIGHTS, IE_SP_DV2_WEIGHTS, IE_SP_LENGTH } from './constants.js';\nimport { computeIeSpCheckDigit } from './modulo-ie.js';\n\ntype FailedResult = Extract<InscricaoEstadualValidationResult, { ok: false }>;\n\nconst SP_MASK_PATTERN = /^[0-9.]+$/;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, uf: 'SP' };\n}\n\nexport function stripIeSp(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function validateIeSp(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Inscrição Estadual input is empty', uf: 'SP' };\n }\n\n if (/[Pp]/.test(trimmed)) {\n return failure('UNSUPPORTED_FORMAT', 'SP rural IE format (P…) requires validateIeProdutorRural');\n }\n\n if (!SP_MASK_PATTERN.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'SP Inscrição Estadual contains invalid characters');\n }\n\n const stripped = stripIeSp(trimmed);\n if (stripped.length !== IE_SP_LENGTH) {\n return failure('INVALID_LENGTH', `SP Inscrição Estadual must have ${IE_SP_LENGTH} digits after normalization`);\n }\n\n const dv1 = computeIeSpCheckDigit(stripped, IE_SP_DV1_WEIGHTS);\n const dv2 = computeIeSpCheckDigit(stripped, IE_SP_DV2_WEIGHTS);\n\n if (Number(stripped.charAt(8)) !== dv1 || Number(stripped.charAt(11)) !== dv2) {\n return failure('INVALID_CHECK_DIGIT', 'SP Inscrição Estadual check digits are invalid');\n }\n\n return {\n ok: true,\n value: brandInscricaoEstadual(stripped),\n uf: 'SP',\n format: 'inscricao-estadual',\n };\n}\n","/**\n * Shared helpers for per-UF IE validators.\n */\nimport type { InscricaoEstadualValidationResult, UfCode } from '../../types/validation-result.js';\nimport { brandInscricaoEstadual } from '../../types/validation-result.js';\n\nexport type IeFailedResult = Extract<InscricaoEstadualValidationResult, { ok: false }>;\n\nexport function stripIeDigits(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function ieFailure(uf: UfCode, code: IeFailedResult['code'], message: string): IeFailedResult {\n return { ok: false, code, message, uf };\n}\n\nexport function ieEmptyInput(uf: UfCode): IeFailedResult {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Inscrição Estadual input is empty', uf };\n}\n\nexport function ieSuccess(stripped: string, uf: UfCode): Extract<InscricaoEstadualValidationResult, { ok: true }> {\n return {\n ok: true,\n value: brandInscricaoEstadual(stripped),\n uf,\n format: 'inscricao-estadual',\n };\n}\n\nexport function checkTrimmedEmpty(trimmed: string, uf: UfCode): IeFailedResult | null {\n if (trimmed.length === 0) {\n return ieEmptyInput(uf);\n }\n return null;\n}\n\nexport function checkDigitChars(trimmed: string, uf: UfCode, pattern = /^[0-9.\\-\\s/]+$/): IeFailedResult | null {\n if (!pattern.test(trimmed)) {\n return ieFailure(uf, 'INVALID_CHARACTER', `${uf} Inscrição Estadual contains invalid characters`);\n }\n return null;\n}\n","/**\n * Acre IE validation — 13 digits, prefix 01, dual mod11 DVs.\n * @see BR-IE-AC-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_AC_PREFIX } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeAcCheckDigit } from './modulo-ie.js';\n\nconst UF = 'AC' as const;\nconst LENGTH = 13;\n\nexport function stripIeAc(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeAc(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeAc(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `AC Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_AC_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'AC Inscrição Estadual must start with prefix 01');\n }\n\n const body = stripped.slice(0, 11);\n const firstDig = computeIeAcCheckDigit(body);\n const secondDig = computeIeAcCheckDigit(body + String(firstDig));\n const checkDigits = `${firstDig}${secondDig}`;\n\n if (stripped.slice(-2) !== checkDigits) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'AC Inscrição Estadual check digits are invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Alagoas IE validation — 9 digits, prefix 24, mod11 (SEFAZ-AL).\n * @see BR-IE-AL-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_AL_PREFIX } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeAlCheckDigit } from './modulo-ie.js';\n\nconst UF = 'AL' as const;\nconst LENGTH = 9;\n\nexport function stripIeAl(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeAl(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeAl(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `AL Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_AL_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'AL Inscrição Estadual must start with prefix 24');\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeAlCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'AL Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Amazonas IE validation — 9 digits, prefix 04.\n * @see BR-IE-AM-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeAmCheckDigit } from './modulo-ie.js';\n\nconst UF = 'AM' as const;\nconst LENGTH = 9;\n\nexport function stripIeAm(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeAm(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeAm(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `AM Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeAmCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'AM Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Amapá IE validation — 9 digits, prefix 03, range-based constants.\n * @see BR-IE-AP-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_AP_PREFIX } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeApCheckDigit } from './modulo-ie.js';\n\nconst UF = 'AP' as const;\nconst LENGTH = 9;\n\nexport function stripIeAp(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeAp(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeAp(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `AP Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_AP_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'AP Inscrição Estadual must start with prefix 03');\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeApCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'AP Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Bahia IE validation — 8 or 9 digits, dual DV, mod10/mod11 by reference digit.\n * @see BR-IE-BA-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeBaCheckDigit, computeIeBaModule } from './modulo-ie.js';\n\nconst UF = 'BA' as const;\n\nexport function stripIeBa(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeBa(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeBa(trimmed);\n if (stripped.length !== 8 && stripped.length !== 9) {\n return ieFailure(UF, 'INVALID_LENGTH', 'BA Inscrição Estadual must have 8 or 9 digits after normalization');\n }\n\n const body = stripped.slice(0, stripped.length - 2);\n const mod = computeIeBaModule(stripped);\n const secondDig = computeIeBaCheckDigit(body, mod);\n const firstDig = computeIeBaCheckDigit(body + String(secondDig), mod);\n const checkDigits = `${firstDig}${secondDig}`;\n\n if (stripped.slice(-2) !== checkDigits) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'BA Inscrição Estadual check digits are invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Ceará IE validation — 9 digits, mod11 (weights 9..2).\n * @see BR-IE-CE-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { computeIeCeCheckDigit } from './modulo-ie.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\n\nconst UF = 'CE' as const;\nconst LENGTH = 9;\n\nexport function stripIeCe(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeCe(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeCe(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `CE Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeCeCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'CE Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Espírito Santo IE validation — 9 digits, CE mod11 roteiro.\n * @see BR-IE-ES-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { validateIeCe } from './ce.js';\nimport { checkDigitChars, checkTrimmedEmpty, stripIeDigits } from './ie-common.js';\n\nconst UF = 'ES' as const;\n\nexport function stripIeEs(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeEs(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const ceResult = validateIeCe(stripIeEs(trimmed));\n if (!ceResult.ok) {\n return { ...ceResult, uf: UF };\n }\n return { ...ceResult, uf: UF };\n}\n","/**\n * Goiás IE validation — 9 digits, prefixes 10/11/15/20.\n * @see BR-IE-GO-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_GO_PREFIXES } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeGoCheckDigit } from './modulo-ie.js';\n\nconst UF = 'GO' as const;\nconst LENGTH = 9;\n\nexport function stripIeGo(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeGo(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeGo(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `GO Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const prefix = stripped.slice(0, 2);\n if (!(IE_GO_PREFIXES as readonly string[]).includes(prefix)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'GO Inscrição Estadual prefix is not supported');\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeGoCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'GO Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Maranhão IE validation — prefix 12 + CE mod11.\n * @see BR-IE-MA-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_MA_PREFIX } from './constants.js';\nimport { validateIeCe } from './ce.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n stripIeDigits,\n} from './ie-common.js';\n\nconst UF = 'MA' as const;\n\nexport function stripIeMa(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeMa(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeMa(trimmed);\n if (!stripped.startsWith(IE_MA_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'MA Inscrição Estadual must start with prefix 12');\n }\n\n const ceResult = validateIeCe(stripped);\n if (!ceResult.ok) {\n return { ...ceResult, uf: UF };\n }\n return { ...ceResult, uf: UF };\n}\n","/**\n * Minas Gerais IE validation — 13 digits, alternate mod11.\n * @see BR-IE-MG-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeMgFirstCheckDigit, computeIeMgSecondCheckDigit } from './modulo-ie.js';\n\nconst UF = 'MG' as const;\nconst LENGTH = 13;\n\nexport function stripIeMg(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeMg(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeMg(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `MG Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 11);\n const firstDig = computeIeMgFirstCheckDigit(body);\n const secondDig = computeIeMgSecondCheckDigit(body + String(firstDig));\n const checkDigits = `${firstDig}${secondDig}`;\n\n if (stripped.slice(-2) !== checkDigits) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'MG Inscrição Estadual check digits are invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Mato Grosso do Sul IE validation — prefix 28 + CE mod11.\n * @see BR-IE-MS-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_MS_PREFIX } from './constants.js';\nimport { validateIeCe } from './ce.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n stripIeDigits,\n} from './ie-common.js';\n\nconst UF = 'MS' as const;\n\nexport function stripIeMs(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeMs(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeMs(trimmed);\n if (!stripped.startsWith(IE_MS_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'MS Inscrição Estadual must start with prefix 28');\n }\n\n const ceResult = validateIeCe(stripped);\n if (!ceResult.ok) {\n return { ...ceResult, uf: UF };\n }\n return { ...ceResult, uf: UF };\n}\n","/**\n * Pará IE validation — prefix 15 + CE mod11.\n * @see BR-IE-PA-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_PA_PREFIX } from './constants.js';\nimport { validateIeCe } from './ce.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n stripIeDigits,\n} from './ie-common.js';\n\nconst UF = 'PA' as const;\n\nexport function stripIePa(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIePa(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIePa(trimmed);\n if (!stripped.startsWith(IE_PA_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'PA Inscrição Estadual must start with prefix 15');\n }\n\n const ceResult = validateIeCe(stripped);\n if (!ceResult.ok) {\n return { ...ceResult, uf: UF };\n }\n return { ...ceResult, uf: UF };\n}\n","/** Paraíba — CE mod11 roteiro. */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { validateIeCe } from './ce.js';\nimport { checkDigitChars, checkTrimmedEmpty, stripIeDigits } from './ie-common.js';\n\nconst UF = 'PB' as const;\n\nexport function stripIePb(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIePb(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n const ceResult = validateIeCe(stripIePb(trimmed));\n if (!ceResult.ok) return { ...ceResult, uf: UF };\n return { ...ceResult, uf: UF };\n}\n","/**\n * Pernambuco IE validation — 9 digits, dual mod11 DVs.\n * @see BR-IE-PE-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIePeCheckDigit } from './modulo-ie.js';\n\nconst UF = 'PE' as const;\nconst LENGTH = 9;\n\nexport function stripIePe(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIePe(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIePe(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `PE Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 7);\n const firstDig = computeIePeCheckDigit(body);\n const secondDig = computeIePeCheckDigit(body + String(firstDig));\n const checkDigits = `${firstDig}${secondDig}`;\n\n if (stripped.slice(-2) !== checkDigits) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'PE Inscrição Estadual check digits are invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/** Piauí — CE mod11 roteiro. */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { validateIeCe } from './ce.js';\nimport { checkDigitChars, checkTrimmedEmpty, stripIeDigits } from './ie-common.js';\n\nconst UF = 'PI' as const;\n\nexport function stripIePi(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIePi(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n const ceResult = validateIeCe(stripIePi(trimmed));\n if (!ceResult.ok) return { ...ceResult, uf: UF };\n return { ...ceResult, uf: UF };\n}\n","/**\n * Paraná IE validation — 10 digits, dual mod11 DVs.\n * @see BR-IE-PR-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIePrStyleCheckDigit } from './modulo-ie.js';\n\nconst UF = 'PR' as const;\nconst LENGTH = 10;\n\nexport function stripIePr(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIePr(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIePr(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `PR Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 8);\n const firstDig = computeIePrStyleCheckDigit(body);\n const secondDig = computeIePrStyleCheckDigit(body + String(firstDig));\n const checkDigits = `${firstDig}${secondDig}`;\n\n if (stripped.slice(-2) !== checkDigits) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'PR Inscrição Estadual check digits are invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Rio de Janeiro IE validation — 8 digits, cyclic weights 2,7,6,5,4,3,2.\n * @see BR-IE-RJ-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeCyclicMod11CheckDigit } from './modulo-ie.js';\n\nconst UF = 'RJ' as const;\nconst LENGTH = 8;\n\nexport function stripIeRj(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeRj(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeRj(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `RJ Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 7);\n const expected = computeIeCyclicMod11CheckDigit(body, 2, 7);\n if (Number(stripped.charAt(7)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'RJ Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Rio Grande do Norte IE validation — 9 digits, prefix 20, fixed weights 9..2.\n * @see BR-IE-RN-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_RN_PREFIX } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\n\nconst UF = 'RN' as const;\nconst LENGTH = 9;\nconst RN_WEIGHTS = [9, 8, 7, 6, 5, 4, 3, 2] as const;\n\nexport function stripIeRn(input: string): string {\n return stripIeDigits(input);\n}\n\nfunction computeRnCheckDigit(body8: string): number {\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * RN_WEIGHTS[i];\n }\n const mod = sum % 11;\n return mod < 2 ? 0 : 11 - mod;\n}\n\nexport function validateIeRn(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeRn(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `RN Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_RN_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'RN Inscrição Estadual must start with prefix 20');\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeRnCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'RN Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Rondônia IE validation — 14 digits.\n * @see BR-IE-RO-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeRoCheckDigit } from './modulo-ie.js';\n\nconst UF = 'RO' as const;\nconst LENGTH = 14;\n\nexport function stripIeRo(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeRo(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeRo(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `RO Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 13);\n const expected = computeIeRoCheckDigit(body);\n if (Number(stripped.charAt(13)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'RO Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Roraima IE validation — 9 digits, prefix 24, mod9.\n * @see BR-IE-RR-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_RR_PREFIX } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeRrCheckDigit } from './modulo-ie.js';\n\nconst UF = 'RR' as const;\nconst LENGTH = 9;\n\nexport function stripIeRr(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeRr(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeRr(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `RR Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_RR_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'RR Inscrição Estadual must start with prefix 24');\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeRrCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'RR Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Rio Grande do Sul IE validation — 10 digits, cyclic weights 2,9,8,7,6,5,4,3,2.\n * @see BR-IE-RS-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeCyclicMod11CheckDigit } from './modulo-ie.js';\n\nconst UF = 'RS' as const;\nconst LENGTH = 10;\n\nexport function stripIeRs(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeRs(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF, /^[0-9.\\-\\s/]+$/);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeRs(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `RS Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 9);\n const expected = computeIeCyclicMod11CheckDigit(body, 2, 9);\n if (Number(stripped.charAt(9)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'RS Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/** Santa Catarina — CE mod11 roteiro. */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { validateIeCe } from './ce.js';\nimport { checkDigitChars, checkTrimmedEmpty, stripIeDigits } from './ie-common.js';\n\nconst UF = 'SC' as const;\n\nexport function stripIeSc(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeSc(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n const ceResult = validateIeCe(stripIeSc(trimmed));\n if (!ceResult.ok) return { ...ceResult, uf: UF };\n return { ...ceResult, uf: UF };\n}\n","/** Sergipe — CE mod11 roteiro. */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { validateIeCe } from './ce.js';\nimport { checkDigitChars, checkTrimmedEmpty, stripIeDigits } from './ie-common.js';\n\nconst UF = 'SE' as const;\n\nexport function stripIeSe(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeSe(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n const ceResult = validateIeCe(stripIeSe(trimmed));\n if (!ceResult.ok) return { ...ceResult, uf: UF };\n return { ...ceResult, uf: UF };\n}\n","/**\n * Tocantins IE validation — 9 or 11 digits (legacy pre-2003).\n * @see BR-IE-TO-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_TO_LEGACY_PREFIXES } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeToCheckDigit } from './modulo-ie.js';\n\nconst UF = 'TO' as const;\n\nexport function stripIeTo(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeTo(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeTo(trimmed);\n if (stripped.length !== 9 && stripped.length !== 11) {\n return ieFailure(UF, 'INVALID_LENGTH', 'TO Inscrição Estadual must have 9 or 11 digits after normalization');\n }\n\n let body: string;\n if (stripped.length === 11) {\n const midPrefix = stripped.slice(2, 4);\n if (!(IE_TO_LEGACY_PREFIXES as readonly string[]).includes(midPrefix)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'TO legacy 11-digit IE middle prefix is not supported');\n }\n body = stripped.slice(0, 2) + stripped.slice(4, 10);\n } else {\n body = stripped.slice(0, 8);\n }\n\n const expected = computeIeToCheckDigit(body);\n if (Number(stripped.slice(-1)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'TO Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Inscrição Estadual validation — per-UF algorithms (27 UFs).\n * @see docs/use-cases/UC-009-validate-inscricao-estadual.md\n */\nimport type { FormatResult, InscricaoEstadualValidationResult, UfCode } from '../../types/validation-result.js';\nimport { validateIeAc } from './ac.js';\nimport { validateIeAl } from './al.js';\nimport { validateIeAm } from './am.js';\nimport { validateIeAp } from './ap.js';\nimport { validateIeBa } from './ba.js';\nimport { validateIeCe } from './ce.js';\nimport { IE_OFFICIAL_SOURCE_URLS, IE_SUPPORTED_UFS } from './constants.js';\nimport { validateIeDf } from './df.js';\nimport { validateIeEs } from './es.js';\nimport { validateIeGo } from './go.js';\nimport { validateIeMa } from './ma.js';\nimport { validateIeMg } from './mg.js';\nimport { validateIeMs } from './ms.js';\nimport { validateIeMt } from './mt.js';\nimport { applyIeDfMask, applyIeSpMask } from './mask.js';\nimport { validateIePa } from './pa.js';\nimport { validateIePb } from './pb.js';\nimport { validateIePe } from './pe.js';\nimport { validateIePi } from './pi.js';\nimport { validateIePr } from './pr.js';\nimport { validateIeRj } from './rj.js';\nimport { validateIeRn } from './rn.js';\nimport { validateIeRo } from './ro.js';\nimport { validateIeRr } from './rr.js';\nimport { validateIeRs } from './rs.js';\nimport { validateIeSc } from './sc.js';\nimport { validateIeSe } from './se.js';\nimport { validateIeSp } from './sp.js';\nimport { validateIeTo } from './to.js';\n\nexport {\n IE_AC_PREFIX,\n IE_AL_PREFIX,\n IE_AM_PREFIX,\n IE_AP_PREFIX,\n IE_DF_GOLDEN,\n IE_DF_GOLDEN_MASKED,\n IE_DF_LENGTH,\n IE_DF_OFFICIAL_SOURCE_URL,\n IE_DF_PREFIX,\n IE_GO_PREFIXES,\n IE_MA_PREFIX,\n IE_MS_PREFIX,\n IE_MT_CANONICAL_LENGTH,\n IE_MT_GOLDEN_CANONICAL,\n IE_MT_GOLDEN_LEGACY,\n IE_MT_LEGACY_LENGTH,\n IE_MT_OFFICIAL_SOURCE_URL,\n IE_MT_PREFIX,\n IE_OFFICIAL_SOURCE_URL,\n IE_OFFICIAL_SOURCE_URLS,\n IE_PA_PREFIX,\n IE_RN_PREFIX,\n IE_RR_PREFIX,\n IE_SP_GOLDEN,\n IE_SP_GOLDEN_MASKED,\n IE_SP_LENGTH,\n IE_SP_OFFICIAL_SOURCE_URL,\n IE_SP_RURAL_GOLDEN,\n IE_SP_RURAL_GOLDEN_MASKED,\n IE_SP_RURAL_LENGTH,\n IE_SP_RURAL_OFFICIAL_SOURCE_URL,\n IE_SUPPORTED_UFS,\n IE_TO_LEGACY_PREFIXES,\n} from './constants.js';\nexport type { UfCode } from './constants.js';\nexport { stripIeAc, validateIeAc } from './ac.js';\nexport { stripIeAl, validateIeAl } from './al.js';\nexport { stripIeAm, validateIeAm } from './am.js';\nexport { stripIeAp, validateIeAp } from './ap.js';\nexport { stripIeBa, validateIeBa } from './ba.js';\nexport { stripIeCe, validateIeCe } from './ce.js';\nexport { stripIeDf, validateIeDf } from './df.js';\nexport { stripIeEs, validateIeEs } from './es.js';\nexport { stripIeGo, validateIeGo } from './go.js';\nexport { stripIeMa, validateIeMa } from './ma.js';\nexport { stripIeMg, validateIeMg } from './mg.js';\nexport { stripIeMs, validateIeMs } from './ms.js';\nexport { normalizeMtToCanonical, padMtLegacy, stripIeMt, validateIeMt } from './mt.js';\nexport { stripIePa, validateIePa } from './pa.js';\nexport { stripIePb, validateIePb } from './pb.js';\nexport { stripIePe, validateIePe } from './pe.js';\nexport { stripIePi, validateIePi } from './pi.js';\nexport { stripIePr, validateIePr } from './pr.js';\nexport { stripIeRj, validateIeRj } from './rj.js';\nexport { stripIeRn, validateIeRn } from './rn.js';\nexport { stripIeRo, validateIeRo } from './ro.js';\nexport { stripIeRr, validateIeRr } from './rr.js';\nexport { stripIeRs, validateIeRs } from './rs.js';\nexport { stripIeSc, validateIeSc } from './sc.js';\nexport { stripIeSe, validateIeSe } from './se.js';\nexport { stripIeSp, validateIeSp } from './sp.js';\nexport { isSpRuralIeInput, stripIeSpRural, validateIeSpRural } from './sp-rural.js';\nexport {\n getIeProdutorRuralOfficialSourceUrl,\n isValidIeProdutorRural,\n validateIeProdutorRural,\n} from './validate-produtor-rural.js';\nexport { stripIeTo, validateIeTo } from './to.js';\nexport { applyIeDfMask, applyIeSpMask, applyIeSpRuralMask } from './mask.js';\n\nexport type ValidateInscricaoEstadualOptions = {\n uf: UfCode;\n};\n\ntype FailedResult = Extract<InscricaoEstadualValidationResult, { ok: false }>;\ntype ValidatorFn = (input: string) => InscricaoEstadualValidationResult;\n\nconst VALIDATORS: Record<UfCode, ValidatorFn> = {\n AC: validateIeAc,\n AL: validateIeAl,\n AM: validateIeAm,\n AP: validateIeAp,\n BA: validateIeBa,\n CE: validateIeCe,\n DF: validateIeDf,\n ES: validateIeEs,\n GO: validateIeGo,\n MA: validateIeMa,\n MG: validateIeMg,\n MS: validateIeMs,\n MT: validateIeMt,\n PA: validateIePa,\n PB: validateIePb,\n PE: validateIePe,\n PI: validateIePi,\n PR: validateIePr,\n RJ: validateIeRj,\n RN: validateIeRn,\n RO: validateIeRo,\n RR: validateIeRr,\n RS: validateIeRs,\n SC: validateIeSc,\n SE: validateIeSe,\n SP: validateIeSp,\n TO: validateIeTo,\n};\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message };\n}\n\nexport function getIeOfficialSourceUrl(uf: UfCode): string {\n return IE_OFFICIAL_SOURCE_URLS[uf];\n}\n\nfunction isSupportedUf(uf: string | undefined): uf is UfCode {\n return uf !== undefined && (IE_SUPPORTED_UFS as readonly string[]).includes(uf);\n}\n\nexport function stripInscricaoEstadual(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function isValidInscricaoEstadual(\n input: string,\n options: ValidateInscricaoEstadualOptions,\n): boolean {\n return validateInscricaoEstadual(input, options).ok;\n}\n\nexport function validateInscricaoEstadual(\n input: string,\n options: ValidateInscricaoEstadualOptions,\n): InscricaoEstadualValidationResult {\n if (!isSupportedUf(options.uf)) {\n return failure('UNSUPPORTED_FORMAT', `UF ${String(options.uf)} is not supported`);\n }\n return VALIDATORS[options.uf](input);\n}\n\nexport function formatInscricaoEstadual(\n input: string,\n options: ValidateInscricaoEstadualOptions,\n): FormatResult {\n const result = validateInscricaoEstadual(input, options);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n\n try {\n if (result.uf === 'SP') {\n return { ok: true, formatted: applyIeSpMask(result.value) };\n }\n if (result.uf === 'DF') {\n return { ok: true, formatted: applyIeDfMask(result.value) };\n }\n return { ok: true, formatted: result.value };\n } catch (error) {\n const message = error instanceof Error ? error.message : 'Failed to format Inscrição Estadual';\n return { ok: false, code: 'UNSUPPORTED_FORMAT', message };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/inscricao-estadual/df.ts","../src/core/inscricao-estadual/mt.ts","../src/core/inscricao-estadual/sp.ts","../src/core/inscricao-estadual/ie-common.ts","../src/core/inscricao-estadual/ac.ts","../src/core/inscricao-estadual/al.ts","../src/core/inscricao-estadual/am.ts","../src/core/inscricao-estadual/ap.ts","../src/core/inscricao-estadual/ba.ts","../src/core/inscricao-estadual/ce.ts","../src/core/inscricao-estadual/es.ts","../src/core/inscricao-estadual/go.ts","../src/core/inscricao-estadual/ma.ts","../src/core/inscricao-estadual/mg.ts","../src/core/inscricao-estadual/ms.ts","../src/core/inscricao-estadual/pa.ts","../src/core/inscricao-estadual/pb.ts","../src/core/inscricao-estadual/pe.ts","../src/core/inscricao-estadual/pi.ts","../src/core/inscricao-estadual/pr.ts","../src/core/inscricao-estadual/rj.ts","../src/core/inscricao-estadual/rn.ts","../src/core/inscricao-estadual/ro.ts","../src/core/inscricao-estadual/rr.ts","../src/core/inscricao-estadual/rs.ts","../src/core/inscricao-estadual/sc.ts","../src/core/inscricao-estadual/se.ts","../src/core/inscricao-estadual/to.ts","../src/core/inscricao-estadual/index.ts"],"names":["failure","UF","LENGTH"],"mappings":"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","file":"chunk-P3EJRH4P.js","sourcesContent":["/**\n * Distrito Federal IE validation — CF/DF 13 digits, dual modulo-11 DVs.\n * @see BR-IE-DF-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { brandInscricaoEstadual } from '../../types/validation-result.js';\nimport { IE_DF_DV1_WEIGHTS, IE_DF_DV2_WEIGHTS, IE_DF_LENGTH, IE_DF_PREFIX } from './constants.js';\nimport { computeIeDfCheckDigit } from './modulo-ie.js';\n\ntype FailedResult = Extract<InscricaoEstadualValidationResult, { ok: false }>;\n\nconst DF_MASK_PATTERN = /^[0-9.-]+$/;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, uf: 'DF' };\n}\n\nexport function stripIeDf(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function validateIeDf(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Inscrição Estadual input is empty', uf: 'DF' };\n }\n\n if (!DF_MASK_PATTERN.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'DF Inscrição Estadual contains invalid characters');\n }\n\n const stripped = stripIeDf(trimmed);\n if (stripped.length === 12) {\n return failure('INVALID_LENGTH', 'DF Inscrição Estadual legacy 12-digit format is not supported; use 13 digits');\n }\n\n if (stripped.length !== IE_DF_LENGTH) {\n return failure('INVALID_LENGTH', `DF Inscrição Estadual must have ${IE_DF_LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_DF_PREFIX)) {\n return failure('UNSUPPORTED_FORMAT', 'DF Inscrição Estadual must start with prefix 07');\n }\n\n const dv1 = computeIeDfCheckDigit(stripped.slice(0, 11), IE_DF_DV1_WEIGHTS);\n const dv2 = computeIeDfCheckDigit(stripped.slice(0, 11), IE_DF_DV2_WEIGHTS, true, dv1);\n\n if (Number(stripped.charAt(11)) !== dv1 || Number(stripped.charAt(12)) !== dv2) {\n return failure('INVALID_CHECK_DIGIT', 'DF Inscrição Estadual check digits are invalid');\n }\n\n return {\n ok: true,\n value: brandInscricaoEstadual(stripped),\n uf: 'DF',\n format: 'inscricao-estadual',\n };\n}\n","/**\n * Mato Grosso IE validation — CCE/MT 9-digit + legacy 11-digit SINTEGRA pad.\n * @see BR-IE-MT-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { brandInscricaoEstadual } from '../../types/validation-result.js';\nimport {\n IE_MT_CANONICAL_LENGTH,\n IE_MT_LEGACY_LENGTH,\n IE_MT_PREFIX,\n} from './constants.js';\nimport { computeIeMtCheckDigit } from './modulo-ie.js';\n\ntype FailedResult = Extract<InscricaoEstadualValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, uf: 'MT' };\n}\n\nexport function stripIeMt(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function normalizeMtToCanonical(padded11: string): string {\n const trimmed = padded11.replace(/^0+/, '');\n return trimmed.length === IE_MT_CANONICAL_LENGTH ? trimmed : padded11.slice(-IE_MT_CANONICAL_LENGTH);\n}\n\nexport function padMtLegacy(stripped: string): string | null {\n if (stripped.length < IE_MT_CANONICAL_LENGTH || stripped.length > IE_MT_LEGACY_LENGTH) {\n return null;\n }\n return stripped.padStart(IE_MT_LEGACY_LENGTH, '0');\n}\n\nexport function validateIeMt(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Inscrição Estadual input is empty', uf: 'MT' };\n }\n\n if (/[^0-9.\\-\\s]/.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'MT Inscrição Estadual contains invalid characters');\n }\n\n const stripped = stripIeMt(trimmed);\n if (stripped.length < IE_MT_CANONICAL_LENGTH || stripped.length > IE_MT_LEGACY_LENGTH) {\n return failure(\n 'INVALID_LENGTH',\n `MT Inscrição Estadual must have ${IE_MT_CANONICAL_LENGTH} or ${IE_MT_LEGACY_LENGTH} digits after normalization`,\n );\n }\n\n const padded =\n stripped.length === IE_MT_LEGACY_LENGTH ? stripped : stripped.padStart(IE_MT_LEGACY_LENGTH, '0');\n const canonical = normalizeMtToCanonical(padded);\n if (!canonical.startsWith(IE_MT_PREFIX)) {\n return failure('UNSUPPORTED_FORMAT', 'MT Inscrição Estadual must start with prefix 13');\n }\n\n const expectedDv = computeIeMtCheckDigit(padded.slice(0, 10));\n if (Number(padded.charAt(10)) !== expectedDv) {\n return failure('INVALID_CHECK_DIGIT', 'MT Inscrição Estadual check digit is invalid');\n }\n\n return {\n ok: true,\n value: brandInscricaoEstadual(canonical),\n uf: 'MT',\n format: 'inscricao-estadual',\n };\n}\n","/**\n * São Paulo IE validation — dual modulo-11 DVs (SEFAZ 2012).\n * @see BR-IE-SP-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { brandInscricaoEstadual } from '../../types/validation-result.js';\nimport { IE_SP_DV1_WEIGHTS, IE_SP_DV2_WEIGHTS, IE_SP_LENGTH } from './constants.js';\nimport { computeIeSpCheckDigit } from './modulo-ie.js';\n\ntype FailedResult = Extract<InscricaoEstadualValidationResult, { ok: false }>;\n\nconst SP_MASK_PATTERN = /^[0-9.]+$/;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, uf: 'SP' };\n}\n\nexport function stripIeSp(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function validateIeSp(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Inscrição Estadual input is empty', uf: 'SP' };\n }\n\n if (/[Pp]/.test(trimmed)) {\n return failure('UNSUPPORTED_FORMAT', 'SP rural IE format (P…) requires validateIeProdutorRural');\n }\n\n if (!SP_MASK_PATTERN.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'SP Inscrição Estadual contains invalid characters');\n }\n\n const stripped = stripIeSp(trimmed);\n if (stripped.length !== IE_SP_LENGTH) {\n return failure('INVALID_LENGTH', `SP Inscrição Estadual must have ${IE_SP_LENGTH} digits after normalization`);\n }\n\n const dv1 = computeIeSpCheckDigit(stripped, IE_SP_DV1_WEIGHTS);\n const dv2 = computeIeSpCheckDigit(stripped, IE_SP_DV2_WEIGHTS);\n\n if (Number(stripped.charAt(8)) !== dv1 || Number(stripped.charAt(11)) !== dv2) {\n return failure('INVALID_CHECK_DIGIT', 'SP Inscrição Estadual check digits are invalid');\n }\n\n return {\n ok: true,\n value: brandInscricaoEstadual(stripped),\n uf: 'SP',\n format: 'inscricao-estadual',\n };\n}\n","/**\n * Shared helpers for per-UF IE validators.\n */\nimport type { InscricaoEstadualValidationResult, UfCode } from '../../types/validation-result.js';\nimport { brandInscricaoEstadual } from '../../types/validation-result.js';\n\nexport type IeFailedResult = Extract<InscricaoEstadualValidationResult, { ok: false }>;\n\nexport function stripIeDigits(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function ieFailure(uf: UfCode, code: IeFailedResult['code'], message: string): IeFailedResult {\n return { ok: false, code, message, uf };\n}\n\nexport function ieEmptyInput(uf: UfCode): IeFailedResult {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Inscrição Estadual input is empty', uf };\n}\n\nexport function ieSuccess(stripped: string, uf: UfCode): Extract<InscricaoEstadualValidationResult, { ok: true }> {\n return {\n ok: true,\n value: brandInscricaoEstadual(stripped),\n uf,\n format: 'inscricao-estadual',\n };\n}\n\nexport function checkTrimmedEmpty(trimmed: string, uf: UfCode): IeFailedResult | null {\n if (trimmed.length === 0) {\n return ieEmptyInput(uf);\n }\n return null;\n}\n\nexport function checkDigitChars(trimmed: string, uf: UfCode, pattern = /^[0-9.\\-\\s/]+$/): IeFailedResult | null {\n if (!pattern.test(trimmed)) {\n return ieFailure(uf, 'INVALID_CHARACTER', `${uf} Inscrição Estadual contains invalid characters`);\n }\n return null;\n}\n","/**\n * Acre IE validation — 13 digits, prefix 01, dual mod11 DVs.\n * @see BR-IE-AC-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_AC_PREFIX } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeAcCheckDigit } from './modulo-ie.js';\n\nconst UF = 'AC' as const;\nconst LENGTH = 13;\n\nexport function stripIeAc(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeAc(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeAc(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `AC Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_AC_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'AC Inscrição Estadual must start with prefix 01');\n }\n\n const body = stripped.slice(0, 11);\n const firstDig = computeIeAcCheckDigit(body);\n const secondDig = computeIeAcCheckDigit(body + String(firstDig));\n const checkDigits = `${firstDig}${secondDig}`;\n\n if (stripped.slice(-2) !== checkDigits) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'AC Inscrição Estadual check digits are invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Alagoas IE validation — 9 digits, prefix 24, mod11 (SEFAZ-AL).\n * @see BR-IE-AL-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_AL_PREFIX } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeAlCheckDigit } from './modulo-ie.js';\n\nconst UF = 'AL' as const;\nconst LENGTH = 9;\n\nexport function stripIeAl(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeAl(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeAl(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `AL Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_AL_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'AL Inscrição Estadual must start with prefix 24');\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeAlCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'AL Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Amazonas IE validation — 9 digits, prefix 04.\n * @see BR-IE-AM-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeAmCheckDigit } from './modulo-ie.js';\n\nconst UF = 'AM' as const;\nconst LENGTH = 9;\n\nexport function stripIeAm(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeAm(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeAm(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `AM Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeAmCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'AM Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Amapá IE validation — 9 digits, prefix 03, range-based constants.\n * @see BR-IE-AP-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_AP_PREFIX } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeApCheckDigit } from './modulo-ie.js';\n\nconst UF = 'AP' as const;\nconst LENGTH = 9;\n\nexport function stripIeAp(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeAp(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeAp(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `AP Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_AP_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'AP Inscrição Estadual must start with prefix 03');\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeApCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'AP Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Bahia IE validation — 8 or 9 digits, dual DV, mod10/mod11 by reference digit.\n * @see BR-IE-BA-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeBaCheckDigit, computeIeBaModule } from './modulo-ie.js';\n\nconst UF = 'BA' as const;\n\nexport function stripIeBa(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeBa(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeBa(trimmed);\n if (stripped.length !== 8 && stripped.length !== 9) {\n return ieFailure(UF, 'INVALID_LENGTH', 'BA Inscrição Estadual must have 8 or 9 digits after normalization');\n }\n\n const body = stripped.slice(0, stripped.length - 2);\n const mod = computeIeBaModule(stripped);\n const secondDig = computeIeBaCheckDigit(body, mod);\n const firstDig = computeIeBaCheckDigit(body + String(secondDig), mod);\n const checkDigits = `${firstDig}${secondDig}`;\n\n if (stripped.slice(-2) !== checkDigits) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'BA Inscrição Estadual check digits are invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Ceará IE validation — 9 digits, mod11 (weights 9..2).\n * @see BR-IE-CE-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { computeIeCeCheckDigit } from './modulo-ie.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\n\nconst UF = 'CE' as const;\nconst LENGTH = 9;\n\nexport function stripIeCe(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeCe(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeCe(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `CE Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeCeCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'CE Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Espírito Santo IE validation — 9 digits, CE mod11 roteiro.\n * @see BR-IE-ES-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { validateIeCe } from './ce.js';\nimport { checkDigitChars, checkTrimmedEmpty, stripIeDigits } from './ie-common.js';\n\nconst UF = 'ES' as const;\n\nexport function stripIeEs(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeEs(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const ceResult = validateIeCe(stripIeEs(trimmed));\n if (!ceResult.ok) {\n return { ...ceResult, uf: UF };\n }\n return { ...ceResult, uf: UF };\n}\n","/**\n * Goiás IE validation — 9 digits, prefixes 10/11/15/20.\n * @see BR-IE-GO-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_GO_PREFIXES } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeGoCheckDigit } from './modulo-ie.js';\n\nconst UF = 'GO' as const;\nconst LENGTH = 9;\n\nexport function stripIeGo(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeGo(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeGo(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `GO Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const prefix = stripped.slice(0, 2);\n if (!(IE_GO_PREFIXES as readonly string[]).includes(prefix)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'GO Inscrição Estadual prefix is not supported');\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeGoCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'GO Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Maranhão IE validation — prefix 12 + CE mod11.\n * @see BR-IE-MA-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_MA_PREFIX } from './constants.js';\nimport { validateIeCe } from './ce.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n stripIeDigits,\n} from './ie-common.js';\n\nconst UF = 'MA' as const;\n\nexport function stripIeMa(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeMa(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeMa(trimmed);\n if (!stripped.startsWith(IE_MA_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'MA Inscrição Estadual must start with prefix 12');\n }\n\n const ceResult = validateIeCe(stripped);\n if (!ceResult.ok) {\n return { ...ceResult, uf: UF };\n }\n return { ...ceResult, uf: UF };\n}\n","/**\n * Minas Gerais IE validation — 13 digits, alternate mod11.\n * @see BR-IE-MG-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeMgFirstCheckDigit, computeIeMgSecondCheckDigit } from './modulo-ie.js';\n\nconst UF = 'MG' as const;\nconst LENGTH = 13;\n\nexport function stripIeMg(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeMg(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeMg(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `MG Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 11);\n const firstDig = computeIeMgFirstCheckDigit(body);\n const secondDig = computeIeMgSecondCheckDigit(body + String(firstDig));\n const checkDigits = `${firstDig}${secondDig}`;\n\n if (stripped.slice(-2) !== checkDigits) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'MG Inscrição Estadual check digits are invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Mato Grosso do Sul IE validation — prefix 28 + CE mod11.\n * @see BR-IE-MS-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_MS_PREFIX } from './constants.js';\nimport { validateIeCe } from './ce.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n stripIeDigits,\n} from './ie-common.js';\n\nconst UF = 'MS' as const;\n\nexport function stripIeMs(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeMs(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeMs(trimmed);\n if (!stripped.startsWith(IE_MS_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'MS Inscrição Estadual must start with prefix 28');\n }\n\n const ceResult = validateIeCe(stripped);\n if (!ceResult.ok) {\n return { ...ceResult, uf: UF };\n }\n return { ...ceResult, uf: UF };\n}\n","/**\n * Pará IE validation — prefix 15 + CE mod11.\n * @see BR-IE-PA-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_PA_PREFIX } from './constants.js';\nimport { validateIeCe } from './ce.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n stripIeDigits,\n} from './ie-common.js';\n\nconst UF = 'PA' as const;\n\nexport function stripIePa(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIePa(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIePa(trimmed);\n if (!stripped.startsWith(IE_PA_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'PA Inscrição Estadual must start with prefix 15');\n }\n\n const ceResult = validateIeCe(stripped);\n if (!ceResult.ok) {\n return { ...ceResult, uf: UF };\n }\n return { ...ceResult, uf: UF };\n}\n","/** Paraíba — CE mod11 roteiro. */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { validateIeCe } from './ce.js';\nimport { checkDigitChars, checkTrimmedEmpty, stripIeDigits } from './ie-common.js';\n\nconst UF = 'PB' as const;\n\nexport function stripIePb(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIePb(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n const ceResult = validateIeCe(stripIePb(trimmed));\n if (!ceResult.ok) return { ...ceResult, uf: UF };\n return { ...ceResult, uf: UF };\n}\n","/**\n * Pernambuco IE validation — 9 digits, dual mod11 DVs.\n * @see BR-IE-PE-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIePeCheckDigit } from './modulo-ie.js';\n\nconst UF = 'PE' as const;\nconst LENGTH = 9;\n\nexport function stripIePe(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIePe(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIePe(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `PE Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 7);\n const firstDig = computeIePeCheckDigit(body);\n const secondDig = computeIePeCheckDigit(body + String(firstDig));\n const checkDigits = `${firstDig}${secondDig}`;\n\n if (stripped.slice(-2) !== checkDigits) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'PE Inscrição Estadual check digits are invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/** Piauí — CE mod11 roteiro. */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { validateIeCe } from './ce.js';\nimport { checkDigitChars, checkTrimmedEmpty, stripIeDigits } from './ie-common.js';\n\nconst UF = 'PI' as const;\n\nexport function stripIePi(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIePi(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n const ceResult = validateIeCe(stripIePi(trimmed));\n if (!ceResult.ok) return { ...ceResult, uf: UF };\n return { ...ceResult, uf: UF };\n}\n","/**\n * Paraná IE validation — 10 digits, dual mod11 DVs.\n * @see BR-IE-PR-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIePrStyleCheckDigit } from './modulo-ie.js';\n\nconst UF = 'PR' as const;\nconst LENGTH = 10;\n\nexport function stripIePr(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIePr(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIePr(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `PR Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 8);\n const firstDig = computeIePrStyleCheckDigit(body);\n const secondDig = computeIePrStyleCheckDigit(body + String(firstDig));\n const checkDigits = `${firstDig}${secondDig}`;\n\n if (stripped.slice(-2) !== checkDigits) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'PR Inscrição Estadual check digits are invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Rio de Janeiro IE validation — 8 digits, cyclic weights 2,7,6,5,4,3,2.\n * @see BR-IE-RJ-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeCyclicMod11CheckDigit } from './modulo-ie.js';\n\nconst UF = 'RJ' as const;\nconst LENGTH = 8;\n\nexport function stripIeRj(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeRj(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeRj(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `RJ Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 7);\n const expected = computeIeCyclicMod11CheckDigit(body, 2, 7);\n if (Number(stripped.charAt(7)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'RJ Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Rio Grande do Norte IE validation — 9 digits, prefix 20, fixed weights 9..2.\n * @see BR-IE-RN-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_RN_PREFIX } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\n\nconst UF = 'RN' as const;\nconst LENGTH = 9;\nconst RN_WEIGHTS = [9, 8, 7, 6, 5, 4, 3, 2] as const;\n\nexport function stripIeRn(input: string): string {\n return stripIeDigits(input);\n}\n\nfunction computeRnCheckDigit(body8: string): number {\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * RN_WEIGHTS[i];\n }\n const mod = sum % 11;\n return mod < 2 ? 0 : 11 - mod;\n}\n\nexport function validateIeRn(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeRn(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `RN Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_RN_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'RN Inscrição Estadual must start with prefix 20');\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeRnCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'RN Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Rondônia IE validation — 14 digits.\n * @see BR-IE-RO-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeRoCheckDigit } from './modulo-ie.js';\n\nconst UF = 'RO' as const;\nconst LENGTH = 14;\n\nexport function stripIeRo(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeRo(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeRo(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `RO Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 13);\n const expected = computeIeRoCheckDigit(body);\n if (Number(stripped.charAt(13)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'RO Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Roraima IE validation — 9 digits, prefix 24, mod9.\n * @see BR-IE-RR-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_RR_PREFIX } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeRrCheckDigit } from './modulo-ie.js';\n\nconst UF = 'RR' as const;\nconst LENGTH = 9;\n\nexport function stripIeRr(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeRr(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeRr(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `RR Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n if (!stripped.startsWith(IE_RR_PREFIX)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'RR Inscrição Estadual must start with prefix 24');\n }\n\n const body = stripped.slice(0, 8);\n const expected = computeIeRrCheckDigit(body);\n if (Number(stripped.charAt(8)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'RR Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Rio Grande do Sul IE validation — 10 digits, cyclic weights 2,9,8,7,6,5,4,3,2.\n * @see BR-IE-RS-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeCyclicMod11CheckDigit } from './modulo-ie.js';\n\nconst UF = 'RS' as const;\nconst LENGTH = 10;\n\nexport function stripIeRs(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeRs(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF, /^[0-9.\\-\\s/]+$/);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeRs(trimmed);\n if (stripped.length !== LENGTH) {\n return ieFailure(UF, 'INVALID_LENGTH', `RS Inscrição Estadual must have ${LENGTH} digits after normalization`);\n }\n\n const body = stripped.slice(0, 9);\n const expected = computeIeCyclicMod11CheckDigit(body, 2, 9);\n if (Number(stripped.charAt(9)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'RS Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/** Santa Catarina — CE mod11 roteiro. */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { validateIeCe } from './ce.js';\nimport { checkDigitChars, checkTrimmedEmpty, stripIeDigits } from './ie-common.js';\n\nconst UF = 'SC' as const;\n\nexport function stripIeSc(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeSc(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n const ceResult = validateIeCe(stripIeSc(trimmed));\n if (!ceResult.ok) return { ...ceResult, uf: UF };\n return { ...ceResult, uf: UF };\n}\n","/** Sergipe — CE mod11 roteiro. */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { validateIeCe } from './ce.js';\nimport { checkDigitChars, checkTrimmedEmpty, stripIeDigits } from './ie-common.js';\n\nconst UF = 'SE' as const;\n\nexport function stripIeSe(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeSe(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n const ceResult = validateIeCe(stripIeSe(trimmed));\n if (!ceResult.ok) return { ...ceResult, uf: UF };\n return { ...ceResult, uf: UF };\n}\n","/**\n * Tocantins IE validation — 9 or 11 digits (legacy pre-2003).\n * @see BR-IE-TO-001\n */\nimport type { InscricaoEstadualValidationResult } from '../../types/validation-result.js';\nimport { IE_TO_LEGACY_PREFIXES } from './constants.js';\nimport {\n checkDigitChars,\n checkTrimmedEmpty,\n ieFailure,\n ieSuccess,\n stripIeDigits,\n} from './ie-common.js';\nimport { computeIeToCheckDigit } from './modulo-ie.js';\n\nconst UF = 'TO' as const;\n\nexport function stripIeTo(input: string): string {\n return stripIeDigits(input);\n}\n\nexport function validateIeTo(input: string): InscricaoEstadualValidationResult {\n const trimmed = input.trim();\n const empty = checkTrimmedEmpty(trimmed, UF);\n if (empty) return empty;\n\n const invalidChar = checkDigitChars(trimmed, UF);\n if (invalidChar) return invalidChar;\n\n const stripped = stripIeTo(trimmed);\n if (stripped.length !== 9 && stripped.length !== 11) {\n return ieFailure(UF, 'INVALID_LENGTH', 'TO Inscrição Estadual must have 9 or 11 digits after normalization');\n }\n\n let body: string;\n if (stripped.length === 11) {\n const midPrefix = stripped.slice(2, 4);\n if (!(IE_TO_LEGACY_PREFIXES as readonly string[]).includes(midPrefix)) {\n return ieFailure(UF, 'UNSUPPORTED_FORMAT', 'TO legacy 11-digit IE middle prefix is not supported');\n }\n body = stripped.slice(0, 2) + stripped.slice(4, 10);\n } else {\n body = stripped.slice(0, 8);\n }\n\n const expected = computeIeToCheckDigit(body);\n if (Number(stripped.slice(-1)) !== expected) {\n return ieFailure(UF, 'INVALID_CHECK_DIGIT', 'TO Inscrição Estadual check digit is invalid');\n }\n\n return ieSuccess(stripped, UF);\n}\n","/**\n * Inscrição Estadual validation — per-UF algorithms (27 UFs).\n * @see docs/use-cases/UC-009-validate-inscricao-estadual.md\n */\nimport type { FormatResult, InscricaoEstadualValidationResult, UfCode } from '../../types/validation-result.js';\nimport { validateIeAc } from './ac.js';\nimport { validateIeAl } from './al.js';\nimport { validateIeAm } from './am.js';\nimport { validateIeAp } from './ap.js';\nimport { validateIeBa } from './ba.js';\nimport { validateIeCe } from './ce.js';\nimport { IE_OFFICIAL_SOURCE_URLS, IE_SUPPORTED_UFS } from './constants.js';\nimport { validateIeDf } from './df.js';\nimport { validateIeEs } from './es.js';\nimport { validateIeGo } from './go.js';\nimport { validateIeMa } from './ma.js';\nimport { validateIeMg } from './mg.js';\nimport { validateIeMs } from './ms.js';\nimport { validateIeMt } from './mt.js';\nimport { applyIeDfMask, applyIeSpMask } from './mask.js';\nimport { validateIePa } from './pa.js';\nimport { validateIePb } from './pb.js';\nimport { validateIePe } from './pe.js';\nimport { validateIePi } from './pi.js';\nimport { validateIePr } from './pr.js';\nimport { validateIeRj } from './rj.js';\nimport { validateIeRn } from './rn.js';\nimport { validateIeRo } from './ro.js';\nimport { validateIeRr } from './rr.js';\nimport { validateIeRs } from './rs.js';\nimport { validateIeSc } from './sc.js';\nimport { validateIeSe } from './se.js';\nimport { validateIeSp } from './sp.js';\nimport { validateIeTo } from './to.js';\n\nexport {\n IE_AC_PREFIX,\n IE_AL_PREFIX,\n IE_AM_PREFIX,\n IE_AP_PREFIX,\n IE_DF_GOLDEN,\n IE_DF_GOLDEN_MASKED,\n IE_DF_LENGTH,\n IE_DF_OFFICIAL_SOURCE_URL,\n IE_DF_PREFIX,\n IE_GO_PREFIXES,\n IE_MA_PREFIX,\n IE_MS_PREFIX,\n IE_MT_CANONICAL_LENGTH,\n IE_MT_GOLDEN_CANONICAL,\n IE_MT_GOLDEN_LEGACY,\n IE_MT_LEGACY_LENGTH,\n IE_MT_OFFICIAL_SOURCE_URL,\n IE_MT_PREFIX,\n IE_OFFICIAL_SOURCE_URL,\n IE_OFFICIAL_SOURCE_URLS,\n IE_PA_PREFIX,\n IE_RN_PREFIX,\n IE_RR_PREFIX,\n IE_SP_GOLDEN,\n IE_SP_GOLDEN_MASKED,\n IE_SP_LENGTH,\n IE_SP_OFFICIAL_SOURCE_URL,\n IE_SP_RURAL_GOLDEN,\n IE_SP_RURAL_GOLDEN_MASKED,\n IE_SP_RURAL_LENGTH,\n IE_SP_RURAL_OFFICIAL_SOURCE_URL,\n IE_SUPPORTED_UFS,\n IE_TO_LEGACY_PREFIXES,\n} from './constants.js';\nexport type { UfCode } from './constants.js';\nexport { stripIeAc, validateIeAc } from './ac.js';\nexport { stripIeAl, validateIeAl } from './al.js';\nexport { stripIeAm, validateIeAm } from './am.js';\nexport { stripIeAp, validateIeAp } from './ap.js';\nexport { stripIeBa, validateIeBa } from './ba.js';\nexport { stripIeCe, validateIeCe } from './ce.js';\nexport { stripIeDf, validateIeDf } from './df.js';\nexport { stripIeEs, validateIeEs } from './es.js';\nexport { stripIeGo, validateIeGo } from './go.js';\nexport { stripIeMa, validateIeMa } from './ma.js';\nexport { stripIeMg, validateIeMg } from './mg.js';\nexport { stripIeMs, validateIeMs } from './ms.js';\nexport { normalizeMtToCanonical, padMtLegacy, stripIeMt, validateIeMt } from './mt.js';\nexport { stripIePa, validateIePa } from './pa.js';\nexport { stripIePb, validateIePb } from './pb.js';\nexport { stripIePe, validateIePe } from './pe.js';\nexport { stripIePi, validateIePi } from './pi.js';\nexport { stripIePr, validateIePr } from './pr.js';\nexport { stripIeRj, validateIeRj } from './rj.js';\nexport { stripIeRn, validateIeRn } from './rn.js';\nexport { stripIeRo, validateIeRo } from './ro.js';\nexport { stripIeRr, validateIeRr } from './rr.js';\nexport { stripIeRs, validateIeRs } from './rs.js';\nexport { stripIeSc, validateIeSc } from './sc.js';\nexport { stripIeSe, validateIeSe } from './se.js';\nexport { stripIeSp, validateIeSp } from './sp.js';\nexport { isSpRuralIeInput, stripIeSpRural, validateIeSpRural } from './sp-rural.js';\nexport {\n getIeProdutorRuralOfficialSourceUrl,\n isValidIeProdutorRural,\n validateIeProdutorRural,\n} from './validate-produtor-rural.js';\nexport { stripIeTo, validateIeTo } from './to.js';\nexport { applyIeDfMask, applyIeSpMask, applyIeSpRuralMask } from './mask.js';\n\nexport type ValidateInscricaoEstadualOptions = {\n uf: UfCode;\n};\n\ntype FailedResult = Extract<InscricaoEstadualValidationResult, { ok: false }>;\ntype ValidatorFn = (input: string) => InscricaoEstadualValidationResult;\n\nconst VALIDATORS: Record<UfCode, ValidatorFn> = {\n AC: validateIeAc,\n AL: validateIeAl,\n AM: validateIeAm,\n AP: validateIeAp,\n BA: validateIeBa,\n CE: validateIeCe,\n DF: validateIeDf,\n ES: validateIeEs,\n GO: validateIeGo,\n MA: validateIeMa,\n MG: validateIeMg,\n MS: validateIeMs,\n MT: validateIeMt,\n PA: validateIePa,\n PB: validateIePb,\n PE: validateIePe,\n PI: validateIePi,\n PR: validateIePr,\n RJ: validateIeRj,\n RN: validateIeRn,\n RO: validateIeRo,\n RR: validateIeRr,\n RS: validateIeRs,\n SC: validateIeSc,\n SE: validateIeSe,\n SP: validateIeSp,\n TO: validateIeTo,\n};\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message };\n}\n\nexport function getIeOfficialSourceUrl(uf: UfCode): string {\n return IE_OFFICIAL_SOURCE_URLS[uf];\n}\n\nfunction isSupportedUf(uf: string | undefined): uf is UfCode {\n return uf !== undefined && (IE_SUPPORTED_UFS as readonly string[]).includes(uf);\n}\n\nexport function stripInscricaoEstadual(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function isValidInscricaoEstadual(\n input: string,\n options: ValidateInscricaoEstadualOptions,\n): boolean {\n return validateInscricaoEstadual(input, options).ok;\n}\n\nexport function validateInscricaoEstadual(\n input: string,\n options: ValidateInscricaoEstadualOptions,\n): InscricaoEstadualValidationResult {\n if (!isSupportedUf(options.uf)) {\n return failure('UNSUPPORTED_FORMAT', `UF ${String(options.uf)} is not supported`);\n }\n return VALIDATORS[options.uf](input);\n}\n\nexport function formatInscricaoEstadual(\n input: string,\n options: ValidateInscricaoEstadualOptions,\n): FormatResult {\n const result = validateInscricaoEstadual(input, options);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n\n try {\n if (result.uf === 'SP') {\n return { ok: true, formatted: applyIeSpMask(result.value) };\n }\n if (result.uf === 'DF') {\n return { ok: true, formatted: applyIeDfMask(result.value) };\n }\n return { ok: true, formatted: result.value };\n } catch (error) {\n const message = error instanceof Error ? error.message : 'Failed to format Inscrição Estadual';\n return { ok: false, code: 'UNSUPPORTED_FORMAT', message };\n }\n}\n"]}
@@ -1,7 +1,8 @@
1
- import { stripPisPasep } from './chunk-JLCQ7MGC.js';
2
- import { normalizeTelefoneDigits, extractTelefoneDigits } from './chunk-OOUEURR7.js';
3
- import { stripInscricaoEstadual } from './chunk-665E36SC.js';
4
- import { stripIeSpRural } from './chunk-CDNOUZEI.js';
1
+ import { stripProcessoJudicial } from './chunk-VE2XZSKP.js';
2
+ import { normalizeTelefoneDigits, extractTelefoneDigits } from './chunk-3JAYOBSG.js';
3
+ import { stripPisPasep } from './chunk-ULNZHOMA.js';
4
+ import { stripInscricaoEstadual } from './chunk-P3EJRH4P.js';
5
+ import { stripIeSpRural } from './chunk-TAOFFAG3.js';
5
6
  import { stripTituloEleitor, stripRenavam, stripCnh, stripPlaca, stripCep } from './chunk-YYHS5WQN.js';
6
7
  import { stripNfeChave } from './chunk-4SNBZFS5.js';
7
8
  import { stripCnpj } from './chunk-EB3G4IG6.js';
@@ -77,8 +78,11 @@ function applyFixes(raw, type) {
77
78
  case "cartao-credito":
78
79
  case "boleto":
79
80
  case "titulo-eleitor":
81
+ case "processo-judicial":
80
82
  case "inscricao-estadual":
81
83
  return digitsFix(trimmed, fixes);
84
+ case "rg":
85
+ return upperAndStripSeparators(trimmed, fixes);
82
86
  case "cnpj":
83
87
  return upperAndStripSeparators(trimmed, fixes);
84
88
  case "placa":
@@ -113,6 +117,10 @@ function stripForType(value, type) {
113
117
  return stripRenavam(value);
114
118
  case "titulo-eleitor":
115
119
  return stripTituloEleitor(value);
120
+ case "processo-judicial":
121
+ return stripProcessoJudicial(value);
122
+ case "rg":
123
+ return value.toUpperCase().replace(/[^A-Z0-9]/g, "");
116
124
  case "nfe-chave":
117
125
  return stripNfeChave(value);
118
126
  case "boleto":
@@ -131,5 +139,5 @@ function stripForType(value, type) {
131
139
  }
132
140
 
133
141
  export { applyFixes, stripForType };
134
- //# sourceMappingURL=chunk-GWAYWBHN.js.map
135
- //# sourceMappingURL=chunk-GWAYWBHN.js.map
142
+ //# sourceMappingURL=chunk-PTZR6C7Y.js.map
143
+ //# sourceMappingURL=chunk-PTZR6C7Y.js.map