@br-validators/core 0.11.0-alpha.0 → 0.12.0-alpha.1

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 (174) hide show
  1. package/README.md +147 -22
  2. package/dist/boleto.d.ts +2 -2
  3. package/dist/boleto.js +3 -2
  4. package/dist/brcode.d.ts +2 -2
  5. package/dist/brcode.js +9 -6
  6. package/dist/cartao-credito.d.ts +2 -2
  7. package/dist/cartao-credito.js +4 -2
  8. package/dist/cep.d.ts +2 -2
  9. package/dist/cep.js +6 -3
  10. package/dist/chunk-2CNYSY3Z.js +3 -0
  11. package/dist/chunk-2CNYSY3Z.js.map +1 -0
  12. package/dist/{chunk-GLKGX552.js → chunk-2JJS46FM.js} +5 -23
  13. package/dist/chunk-2JJS46FM.js.map +1 -0
  14. package/dist/{chunk-FLZ6IHOD.js → chunk-3QP6R46N.js} +119 -496
  15. package/dist/chunk-3QP6R46N.js.map +1 -0
  16. package/dist/chunk-4SNBZFS5.js +8 -0
  17. package/dist/chunk-4SNBZFS5.js.map +1 -0
  18. package/dist/{chunk-IW3ESGWH.js → chunk-4W4OKLSZ.js} +4 -25
  19. package/dist/chunk-4W4OKLSZ.js.map +1 -0
  20. package/dist/chunk-4Y2FBO57.js +26 -0
  21. package/dist/chunk-4Y2FBO57.js.map +1 -0
  22. package/dist/{chunk-465IC76U.js → chunk-5UL3M7IU.js} +4 -23
  23. package/dist/chunk-5UL3M7IU.js.map +1 -0
  24. package/dist/chunk-6QJFMOIX.js +22 -0
  25. package/dist/chunk-6QJFMOIX.js.map +1 -0
  26. package/dist/chunk-7ZL7PZII.js +187 -0
  27. package/dist/chunk-7ZL7PZII.js.map +1 -0
  28. package/dist/chunk-BFZPCEYB.js +14 -0
  29. package/dist/chunk-BFZPCEYB.js.map +1 -0
  30. package/dist/chunk-CDGRHI7W.js +22 -0
  31. package/dist/chunk-CDGRHI7W.js.map +1 -0
  32. package/dist/chunk-CQPM43VV.js +3 -0
  33. package/dist/chunk-CQPM43VV.js.map +1 -0
  34. package/dist/chunk-D36RM7OD.js +207 -0
  35. package/dist/chunk-D36RM7OD.js.map +1 -0
  36. package/dist/{chunk-CR45BOLS.js → chunk-EPKHEW5V.js} +4 -13
  37. package/dist/chunk-EPKHEW5V.js.map +1 -0
  38. package/dist/{chunk-5BBNLRZP.js → chunk-F6PTZY4O.js} +5 -14
  39. package/dist/chunk-F6PTZY4O.js.map +1 -0
  40. package/dist/chunk-FXLVNCG3.js +26 -0
  41. package/dist/chunk-FXLVNCG3.js.map +1 -0
  42. package/dist/chunk-G24G7WR5.js +3 -0
  43. package/dist/chunk-G24G7WR5.js.map +1 -0
  44. package/dist/chunk-G2Y63PIF.js +24 -0
  45. package/dist/chunk-G2Y63PIF.js.map +1 -0
  46. package/dist/chunk-G32U6YQ5.js +14 -0
  47. package/dist/chunk-G32U6YQ5.js.map +1 -0
  48. package/dist/{chunk-TVVNTLIH.js → chunk-GRDUTHNX.js} +3 -3
  49. package/dist/{chunk-TVVNTLIH.js.map → chunk-GRDUTHNX.js.map} +1 -1
  50. package/dist/chunk-GVK6IMBF.js +3 -0
  51. package/dist/chunk-GVK6IMBF.js.map +1 -0
  52. package/dist/chunk-IQGRFAQV.js +23 -0
  53. package/dist/chunk-IQGRFAQV.js.map +1 -0
  54. package/dist/chunk-JQABTHUJ.js +3 -0
  55. package/dist/chunk-JQABTHUJ.js.map +1 -0
  56. package/dist/{chunk-GN7QIQE6.js → chunk-KH7DWOUA.js} +5 -23
  57. package/dist/chunk-KH7DWOUA.js.map +1 -0
  58. package/dist/chunk-KQDLIGSG.js +14 -0
  59. package/dist/chunk-KQDLIGSG.js.map +1 -0
  60. package/dist/chunk-LF2B4VPE.js +3 -0
  61. package/dist/chunk-LF2B4VPE.js.map +1 -0
  62. package/dist/chunk-LGD2JJBZ.js +288 -0
  63. package/dist/chunk-LGD2JJBZ.js.map +1 -0
  64. package/dist/{chunk-MQT25QN7.js → chunk-LYBFUKHR.js} +4 -3
  65. package/dist/chunk-LYBFUKHR.js.map +1 -0
  66. package/dist/chunk-MFNJTAUS.js +3 -0
  67. package/dist/chunk-MFNJTAUS.js.map +1 -0
  68. package/dist/{chunk-D5JMGN7U.js → chunk-MK7OJUF5.js} +7 -5
  69. package/dist/chunk-MK7OJUF5.js.map +1 -0
  70. package/dist/chunk-MLPXW7N2.js +226 -0
  71. package/dist/chunk-MLPXW7N2.js.map +1 -0
  72. package/dist/{chunk-BBL6ZPXH.js → chunk-MSLJF2FM.js} +18 -3
  73. package/dist/chunk-MSLJF2FM.js.map +1 -0
  74. package/dist/{chunk-V3OWDXRU.js → chunk-NHLLC6WH.js} +4 -3
  75. package/dist/chunk-NHLLC6WH.js.map +1 -0
  76. package/dist/chunk-OCYXNLHO.js +307 -0
  77. package/dist/chunk-OCYXNLHO.js.map +1 -0
  78. package/dist/{chunk-B2TDI3YS.js → chunk-OTZHMJYE.js} +3 -3
  79. package/dist/{chunk-B2TDI3YS.js.map → chunk-OTZHMJYE.js.map} +1 -1
  80. package/dist/chunk-P55H5YRX.js +3 -0
  81. package/dist/chunk-P55H5YRX.js.map +1 -0
  82. package/dist/chunk-PB4RIS6G.js +27 -0
  83. package/dist/chunk-PB4RIS6G.js.map +1 -0
  84. package/dist/chunk-QGMVUIDD.js +3 -0
  85. package/dist/chunk-QGMVUIDD.js.map +1 -0
  86. package/dist/chunk-RYGAK7PB.js +3 -0
  87. package/dist/chunk-RYGAK7PB.js.map +1 -0
  88. package/dist/chunk-US4OLTJ2.js +104 -0
  89. package/dist/chunk-US4OLTJ2.js.map +1 -0
  90. package/dist/{chunk-GEHAH4OH.js → chunk-WCQUQ2WX.js} +4 -4
  91. package/dist/{chunk-GEHAH4OH.js.map → chunk-WCQUQ2WX.js.map} +1 -1
  92. package/dist/chunk-WLE2ENQA.js +86 -0
  93. package/dist/chunk-WLE2ENQA.js.map +1 -0
  94. package/dist/{chunk-2KTD23PD.js → chunk-WPL47PWJ.js} +5 -14
  95. package/dist/chunk-WPL47PWJ.js.map +1 -0
  96. package/dist/chunk-XKY2CV3G.js +14 -0
  97. package/dist/chunk-XKY2CV3G.js.map +1 -0
  98. package/dist/chunk-XUO7FV6Z.js +14 -0
  99. package/dist/chunk-XUO7FV6Z.js.map +1 -0
  100. package/dist/chunk-Y2KUN2D3.js +3 -0
  101. package/dist/chunk-Y2KUN2D3.js.map +1 -0
  102. package/dist/chunk-Y6IW2LMW.js +460 -0
  103. package/dist/chunk-Y6IW2LMW.js.map +1 -0
  104. package/dist/chunk-YGA5W54J.js +3 -0
  105. package/dist/chunk-YGA5W54J.js.map +1 -0
  106. package/dist/{chunk-UE4PVN6Y.js → chunk-YXELVV37.js} +5 -14
  107. package/dist/chunk-YXELVV37.js.map +1 -0
  108. package/dist/chunk-YYHS5WQN.js +28 -0
  109. package/dist/chunk-YYHS5WQN.js.map +1 -0
  110. package/dist/chunk-ZAUZRIOU.js +23 -0
  111. package/dist/chunk-ZAUZRIOU.js.map +1 -0
  112. package/dist/chunk-ZH4RJNG7.js +3 -0
  113. package/dist/chunk-ZH4RJNG7.js.map +1 -0
  114. package/dist/cnh.d.ts +39 -0
  115. package/dist/cnh.js +11 -0
  116. package/dist/cnh.js.map +1 -0
  117. package/dist/cnpj.d.ts +2 -2
  118. package/dist/cnpj.js +6 -4
  119. package/dist/cpf.d.ts +2 -2
  120. package/dist/cpf.js +6 -4
  121. package/dist/detect.d.ts +23 -0
  122. package/dist/detect.js +26 -0
  123. package/dist/detect.js.map +1 -0
  124. package/dist/generate.d.ts +10 -0
  125. package/dist/generate.js +29 -0
  126. package/dist/generate.js.map +1 -0
  127. package/dist/index-CZLo9YOT.d.ts +21 -0
  128. package/dist/index.d.ts +12 -4
  129. package/dist/index.js +60 -25
  130. package/dist/index.js.map +1 -1
  131. package/dist/inscricao-estadual-produtor-rural-CfWUaggb.d.ts +46 -0
  132. package/dist/inscricao-estadual-produtor-rural.d.ts +2 -0
  133. package/dist/inscricao-estadual-produtor-rural.js +7 -0
  134. package/dist/inscricao-estadual-produtor-rural.js.map +1 -0
  135. package/dist/inscricao-estadual.d.ts +4 -21
  136. package/dist/inscricao-estadual.js +5 -2
  137. package/dist/nfe-chave.d.ts +71 -0
  138. package/dist/nfe-chave.js +6 -0
  139. package/dist/nfe-chave.js.map +1 -0
  140. package/dist/pis-pasep.d.ts +2 -2
  141. package/dist/pis-pasep.js +5 -3
  142. package/dist/{pix-BtTx04Si.d.ts → pix-ddldLlb7.d.ts} +1 -1
  143. package/dist/pix.d.ts +2 -2
  144. package/dist/pix.js +8 -6
  145. package/dist/placa.d.ts +2 -2
  146. package/dist/placa.js +6 -3
  147. package/dist/renavam.d.ts +37 -0
  148. package/dist/renavam.js +11 -0
  149. package/dist/renavam.js.map +1 -0
  150. package/dist/sanitize.d.ts +9 -0
  151. package/dist/sanitize.js +24 -0
  152. package/dist/sanitize.js.map +1 -0
  153. package/dist/telefone.d.ts +2 -2
  154. package/dist/telefone.js +4 -2
  155. package/dist/titulo-eleitor.d.ts +56 -0
  156. package/dist/titulo-eleitor.js +10 -0
  157. package/dist/titulo-eleitor.js.map +1 -0
  158. package/dist/{validation-result-C-Ei-lZH.d.ts → validation-result-BhQE-1_O.d.ts} +64 -2
  159. package/package.json +48 -4
  160. package/dist/chunk-2KTD23PD.js.map +0 -1
  161. package/dist/chunk-465IC76U.js.map +0 -1
  162. package/dist/chunk-5BBNLRZP.js.map +0 -1
  163. package/dist/chunk-BBL6ZPXH.js.map +0 -1
  164. package/dist/chunk-CR45BOLS.js.map +0 -1
  165. package/dist/chunk-D5JMGN7U.js.map +0 -1
  166. package/dist/chunk-FLZ6IHOD.js.map +0 -1
  167. package/dist/chunk-GLKGX552.js.map +0 -1
  168. package/dist/chunk-GN7QIQE6.js.map +0 -1
  169. package/dist/chunk-IW3ESGWH.js.map +0 -1
  170. package/dist/chunk-MQT25QN7.js.map +0 -1
  171. package/dist/chunk-UE4PVN6Y.js.map +0 -1
  172. package/dist/chunk-V3OWDXRU.js.map +0 -1
  173. package/dist/chunk-W6UXVWSR.js +0 -13
  174. package/dist/chunk-W6UXVWSR.js.map +0 -1
@@ -0,0 +1,460 @@
1
+ import { brandInscricaoEstadualProdutorRural } from './chunk-MSLJF2FM.js';
2
+
3
+ // src/core/inscricao-estadual/constants.ts
4
+ var IE_SUPPORTED_UFS = [
5
+ "AC",
6
+ "AL",
7
+ "AM",
8
+ "AP",
9
+ "BA",
10
+ "CE",
11
+ "DF",
12
+ "ES",
13
+ "GO",
14
+ "MA",
15
+ "MG",
16
+ "MS",
17
+ "MT",
18
+ "PA",
19
+ "PB",
20
+ "PE",
21
+ "PI",
22
+ "PR",
23
+ "RJ",
24
+ "RN",
25
+ "RO",
26
+ "RR",
27
+ "RS",
28
+ "SC",
29
+ "SE",
30
+ "SP",
31
+ "TO"
32
+ ];
33
+ var IE_OFFICIAL_SOURCE_URLS = {
34
+ AC: "https://sefaz.ac.gov.br/",
35
+ AL: "https://www.sefaz.al.gov.br/calculo",
36
+ AM: "https://www.sefaz.am.gov.br/",
37
+ AP: "https://www.sefaz.ap.gov.br/",
38
+ BA: "https://www.sefaz.ba.gov.br/inspetoria-eletronica/icms/cadastro/calculo-dv/",
39
+ CE: "https://www.sefaz.ce.gov.br/",
40
+ DF: "https://www.receita.fazenda.df.gov.br/",
41
+ ES: "https://sitenet.es.gov.br/sefaz/",
42
+ GO: "http://www.sefaz.go.gov.br/ServicosAFA/ece.html",
43
+ MA: "https://www.sefaz.ma.gov.br/",
44
+ MG: "https://www.fazenda.mg.gov.br/empresas/Cadastro/cadastro/consultapublica.html",
45
+ MS: "https://www.sefaz.ms.gov.br/",
46
+ MT: "https://app1.sefaz.mt.gov.br/Sistema/legislacao/legislacaotribut.nsf/709f9c981a9d9f468425671300482be0/2217ddcf7a9b7cea03258c6c007324ba?OpenDocument=",
47
+ PA: "https://www.sefa.pa.gov.br/",
48
+ PB: "https://www.receita.pb.gov.br/",
49
+ PE: "https://www.sefaz.pe.gov.br/",
50
+ PI: "https://www.sefaz.pi.gov.br/",
51
+ PR: "https://www.fazenda.pr.gov.br/Pagina/calculo-digito-verificador",
52
+ RJ: "https://portal.fazenda.rj.gov.br/cadastro/",
53
+ RN: "https://www.set.rn.gov.br/",
54
+ RO: "https://www.sefin.ro.gov.br/",
55
+ RR: "https://www.sefaz.rr.gov.br/",
56
+ RS: "https://www.sefaz.rs.gov.br/",
57
+ SC: "https://sat.sef.sc.gov.br/",
58
+ SE: "https://www.sefaz.se.gov.br/",
59
+ SP: "https://portal.fazenda.sp.gov.br/servicos/icms/Paginas/sintegra-rotina-consistencia.aspx",
60
+ TO: "https://www.sefaz.to.gov.br/"
61
+ };
62
+ var IE_AC_PREFIX = "01";
63
+ var IE_AL_PREFIX = "24";
64
+ var IE_AP_PREFIX = "03";
65
+ var IE_DF_PREFIX = "07";
66
+ var IE_GO_PREFIXES = ["10", "11", "15", "20"];
67
+ var IE_MA_PREFIX = "12";
68
+ var IE_MS_PREFIX = "28";
69
+ var IE_MT_PREFIX = "13";
70
+ var IE_PA_PREFIX = "15";
71
+ var IE_RN_PREFIX = "20";
72
+ var IE_RR_PREFIX = "24";
73
+ var IE_TO_LEGACY_PREFIXES = ["01", "02", "03", "99"];
74
+ var IE_SP_LENGTH = 12;
75
+ var IE_SP_DV1_WEIGHTS = [1, 3, 4, 5, 6, 7, 8, 10];
76
+ var IE_SP_DV2_WEIGHTS = [3, 2, 10, 9, 8, 7, 6, 5, 4, 3, 2];
77
+ var IE_SP_GOLDEN = "110042490114";
78
+ var IE_SP_GOLDEN_MASKED = "110.042.490.114";
79
+ var IE_SP_OFFICIAL_SOURCE_URL = IE_OFFICIAL_SOURCE_URLS.SP;
80
+ var IE_SP_RURAL_LENGTH = 13;
81
+ var IE_SP_RURAL_GOLDEN = "P011004243002";
82
+ var IE_SP_RURAL_GOLDEN_MASKED = "P-01100424.3/002";
83
+ var IE_SP_RURAL_OFFICIAL_SOURCE_URL = "http://www.sintegra.gov.br/Cad_Estados/cad_SP.html";
84
+ var IE_MT_CANONICAL_LENGTH = 9;
85
+ var IE_MT_LEGACY_LENGTH = 11;
86
+ var IE_MT_GOLDEN_LEGACY = "00130000019";
87
+ var IE_MT_GOLDEN_CANONICAL = "130000019";
88
+ var IE_MT_OFFICIAL_SOURCE_URL = IE_OFFICIAL_SOURCE_URLS.MT;
89
+ var IE_DF_LENGTH = 13;
90
+ var IE_DF_DV1_WEIGHTS = [4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
91
+ var IE_DF_DV2_WEIGHTS = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
92
+ var IE_DF_GOLDEN = "0730000100109";
93
+ var IE_DF_GOLDEN_MASKED = "073.00001.001-09";
94
+ var IE_DF_OFFICIAL_SOURCE_URL = IE_OFFICIAL_SOURCE_URLS.DF;
95
+
96
+ // src/core/inscricao-estadual/modulo-ie.ts
97
+ function computeIeSpCheckDigit(digits, weights) {
98
+ let sum = 0;
99
+ for (let i = 0; i < weights.length; i++) {
100
+ sum += Number(digits[i]) * weights[i];
101
+ }
102
+ const remainder = sum % 11;
103
+ return remainder === 10 ? 0 : remainder % 10;
104
+ }
105
+ function computeIeMtCheckDigit(digits10) {
106
+ let sum = 0;
107
+ const weights = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
108
+ for (let i = 0; i < 10; i++) {
109
+ sum += Number(digits10[i]) * weights[i];
110
+ }
111
+ const remainder = sum % 11;
112
+ return remainder <= 1 ? 0 : 11 - remainder;
113
+ }
114
+ function computeIeDfCheckDigit(digits, weights, includeDv1 = false, dv1 = 0) {
115
+ let sum = 0;
116
+ const digitCount = includeDv1 ? 11 : digits.length;
117
+ for (let i = 0; i < digitCount; i++) {
118
+ sum += Number(digits[i]) * weights[i];
119
+ }
120
+ if (includeDv1) {
121
+ sum += dv1 * weights[11];
122
+ }
123
+ const remainder = sum % 11;
124
+ return remainder <= 1 ? 0 : 11 - remainder;
125
+ }
126
+ function computeIeCeCheckDigit(body8) {
127
+ let weight = 9;
128
+ let sum = 0;
129
+ for (let i = 0; i < 8; i++) {
130
+ sum += Number(body8[i]) * weight;
131
+ weight--;
132
+ }
133
+ const rest = sum % 11;
134
+ let digit = 11 - rest;
135
+ if (digit >= 10) {
136
+ digit = 0;
137
+ }
138
+ return digit;
139
+ }
140
+ function computeIeAlCheckDigit(body8) {
141
+ let weight = 9;
142
+ let sum = 0;
143
+ for (let i = 0; i < 8; i++) {
144
+ sum += Number(body8[i]) * weight;
145
+ weight--;
146
+ }
147
+ const product = sum * 10;
148
+ let digit = product - Math.floor(product / 11) * 11;
149
+ if (digit >= 10) {
150
+ digit = 0;
151
+ }
152
+ return digit;
153
+ }
154
+ function computeIeAmCheckDigit(body8) {
155
+ let weight = 9;
156
+ let sum = 0;
157
+ for (let i = 0; i < 8; i++) {
158
+ sum += Number(body8[i]) * weight;
159
+ weight--;
160
+ }
161
+ if (sum < 11) {
162
+ return 11 - sum;
163
+ }
164
+ const remainder = sum % 11;
165
+ let digit = 11 - remainder;
166
+ if (digit >= 10) {
167
+ digit = 0;
168
+ }
169
+ return digit;
170
+ }
171
+ function computeIePrStyleCheckDigit(body) {
172
+ let weight = body.length - 5;
173
+ let sum = 0;
174
+ for (let i = 0; i < body.length; i++) {
175
+ sum += Number(body[i]) * weight;
176
+ weight--;
177
+ if (weight === 1) {
178
+ weight = 7;
179
+ }
180
+ }
181
+ const rest = sum % 11;
182
+ let digit = 11 - rest;
183
+ if (digit >= 10) {
184
+ digit = 0;
185
+ }
186
+ return digit;
187
+ }
188
+ function computeIeAcCheckDigit(body) {
189
+ let weight = body.length - 7;
190
+ let sum = 0;
191
+ for (let i = 0; i < body.length; i++) {
192
+ sum += Number(body[i]) * weight;
193
+ weight--;
194
+ if (weight === 1) {
195
+ weight = 9;
196
+ }
197
+ }
198
+ const rest = sum % 11;
199
+ let digit = 11 - rest;
200
+ if (digit >= 10) {
201
+ digit = 0;
202
+ }
203
+ return digit;
204
+ }
205
+ function computeIeBaModule(ie) {
206
+ const refIndex = ie.length === 9 ? 1 : 0;
207
+ const refDigit = Number(ie[refIndex]);
208
+ const mod10Digits = [0, 1, 2, 3, 4, 5, 8];
209
+ return mod10Digits.includes(refDigit) ? 10 : 11;
210
+ }
211
+ function computeIeBaCheckDigit(body, mod) {
212
+ let weight = body.length + 1;
213
+ let sum = 0;
214
+ for (let i = 0; i < body.length; i++) {
215
+ sum += Number(body[i]) * weight;
216
+ weight--;
217
+ }
218
+ const rest = sum % mod;
219
+ let digit = mod - rest;
220
+ if (digit >= 10) {
221
+ digit = 0;
222
+ }
223
+ return digit;
224
+ }
225
+ function computeIePeCheckDigit(body) {
226
+ let weight = body.length + 1;
227
+ let sum = 0;
228
+ for (let i = 0; i < body.length; i++) {
229
+ sum += Number(body[i]) * weight;
230
+ weight--;
231
+ }
232
+ const rest = sum % 11;
233
+ let digit = 11 - rest;
234
+ if (digit >= 10) {
235
+ digit = 0;
236
+ }
237
+ return digit;
238
+ }
239
+ function computeIeCyclicMod11CheckDigit(body, startWeight, resetWeight) {
240
+ let weight = startWeight;
241
+ let sum = 0;
242
+ for (let i = 0; i < body.length; i++) {
243
+ sum += Number(body[i]) * weight;
244
+ weight--;
245
+ if (weight === 1) {
246
+ weight = resetWeight;
247
+ }
248
+ }
249
+ const rest = sum % 11;
250
+ let digit = 11 - rest;
251
+ if (digit >= 10) {
252
+ digit = 0;
253
+ }
254
+ return digit;
255
+ }
256
+ function computeIeRoCheckDigit(body) {
257
+ let weight = 6;
258
+ let sum = 0;
259
+ for (let i = 0; i < body.length; i++) {
260
+ sum += Number(body[i]) * weight;
261
+ weight--;
262
+ if (weight === 1) {
263
+ weight = 9;
264
+ }
265
+ }
266
+ const rest = sum % 11;
267
+ let digit = 11 - rest;
268
+ if (digit >= 10) {
269
+ digit -= 10;
270
+ }
271
+ return digit;
272
+ }
273
+ function computeIeGoCheckDigit(body8) {
274
+ let weight = 9;
275
+ let sum = 0;
276
+ for (let i = 0; i < 8; i++) {
277
+ sum += Number(body8[i]) * weight;
278
+ weight--;
279
+ }
280
+ const rest = sum % 11;
281
+ let digit = 11 - rest;
282
+ const bodyInt = Number(body8);
283
+ if (digit >= 10) {
284
+ if (digit === 11 && bodyInt >= 10103105 && bodyInt <= 10119997) {
285
+ digit = 1;
286
+ } else {
287
+ digit = 0;
288
+ }
289
+ }
290
+ return digit;
291
+ }
292
+ function computeIeApCheckDigit(body8) {
293
+ const bodyInt = Number(body8);
294
+ let p = 0;
295
+ let d = 0;
296
+ if (bodyInt >= 3000001 && bodyInt <= 3017e3) {
297
+ p = 5;
298
+ d = 0;
299
+ } else if (bodyInt >= 3017001 && bodyInt <= 3019022) {
300
+ p = 9;
301
+ d = 1;
302
+ }
303
+ let weight = 9;
304
+ let sum = p;
305
+ for (let i = 0; i < 8; i++) {
306
+ sum += Number(body8[i]) * weight;
307
+ weight--;
308
+ }
309
+ let digit = 11 - sum % 11;
310
+ if (digit === 10) {
311
+ digit = 0;
312
+ } else if (digit === 11) {
313
+ digit = d;
314
+ }
315
+ return digit;
316
+ }
317
+ function computeIeRrCheckDigit(body8) {
318
+ let weight = 1;
319
+ let sum = 0;
320
+ for (let i = 0; i < 8; i++) {
321
+ sum += Number(body8[i]) * weight;
322
+ weight++;
323
+ }
324
+ return sum % 9;
325
+ }
326
+ function computeIeToCheckDigit(body) {
327
+ let weight = 9;
328
+ let sum = 0;
329
+ for (let i = 0; i < body.length; i++) {
330
+ sum += Number(body[i]) * weight;
331
+ weight--;
332
+ }
333
+ const rest = sum % 11;
334
+ if (rest < 2) {
335
+ return 0;
336
+ }
337
+ return 11 - rest;
338
+ }
339
+ function computeIeMgFirstCheckDigit(body11) {
340
+ const bodyWithZero = `${body11.slice(0, 3)}0${body11.slice(3)}`;
341
+ let weightedSum = "";
342
+ for (let i = 0; i < bodyWithZero.length; i++) {
343
+ const w = (i + 1) % 2 === 0 ? 2 : 1;
344
+ weightedSum += (Number(bodyWithZero[i]) * w).toString();
345
+ }
346
+ let sum = 0;
347
+ for (let i = 0; i < weightedSum.length; i++) {
348
+ sum += Number(weightedSum[i]);
349
+ }
350
+ const lastDigit = Number(sum.toString().slice(-1));
351
+ return lastDigit === 0 ? 0 : 10 - lastDigit;
352
+ }
353
+ function computeIeMgSecondCheckDigit(body12) {
354
+ let weight = 3;
355
+ let sum = 0;
356
+ for (let i = 0; i < body12.length; i++) {
357
+ sum += Number(body12[i]) * weight;
358
+ weight--;
359
+ if (weight === 1) {
360
+ weight = 11;
361
+ }
362
+ }
363
+ const rest = sum % 11;
364
+ let digit = 11 - rest;
365
+ if (digit >= 10) {
366
+ digit = 0;
367
+ }
368
+ return digit;
369
+ }
370
+
371
+ // src/core/inscricao-estadual/sp-rural.ts
372
+ var SP_RURAL_MASK_PATTERN = /^[Pp0-9.\-\s/]+$/;
373
+ function failure(code, message) {
374
+ return { ok: false, code, message, uf: "SP" };
375
+ }
376
+ function isSpRuralIeInput(input) {
377
+ return /^[Pp]/.test(input.trim());
378
+ }
379
+ function stripIeSpRural(input) {
380
+ const trimmed = input.trim().toUpperCase();
381
+ const digits = trimmed.replace(/^[P]/, "").replace(/\D/g, "");
382
+ return `P${digits}`;
383
+ }
384
+ function validateIeSpRural(input) {
385
+ const trimmed = input.trim();
386
+ if (trimmed.length === 0) {
387
+ return { ok: false, code: "EMPTY_INPUT", message: "Inscri\xE7\xE3o Estadual produtor rural input is empty", uf: "SP" };
388
+ }
389
+ if (!/^[Pp]/.test(trimmed)) {
390
+ return failure("INVALID_CHARACTER", "SP produtor rural Inscri\xE7\xE3o Estadual must start with P");
391
+ }
392
+ if (!SP_RURAL_MASK_PATTERN.test(trimmed)) {
393
+ return failure("INVALID_CHARACTER", "SP produtor rural Inscri\xE7\xE3o Estadual contains invalid characters");
394
+ }
395
+ const stripped = stripIeSpRural(trimmed);
396
+ if (stripped.length !== IE_SP_RURAL_LENGTH) {
397
+ return failure(
398
+ "INVALID_LENGTH",
399
+ `SP produtor rural Inscri\xE7\xE3o Estadual must have ${IE_SP_RURAL_LENGTH} characters after normalization`
400
+ );
401
+ }
402
+ const dvInput = stripped.slice(1, 9);
403
+ const expectedDv = computeIeSpCheckDigit(dvInput, IE_SP_DV1_WEIGHTS);
404
+ const actualDv = Number(stripped.charAt(9));
405
+ if (actualDv !== expectedDv) {
406
+ return failure("INVALID_CHECK_DIGIT", "SP produtor rural Inscri\xE7\xE3o Estadual check digit is invalid");
407
+ }
408
+ return {
409
+ ok: true,
410
+ value: brandInscricaoEstadualProdutorRural(stripped),
411
+ uf: "SP",
412
+ format: "inscricao-estadual-produtor-rural"
413
+ };
414
+ }
415
+
416
+ // src/core/inscricao-estadual/validate-produtor-rural.ts
417
+ function failure2(code, message, uf) {
418
+ return { ok: false, code, message, uf };
419
+ }
420
+ function getIeProdutorRuralOfficialSourceUrl() {
421
+ return IE_SP_RURAL_OFFICIAL_SOURCE_URL;
422
+ }
423
+ function isValidIeProdutorRural(uf, input) {
424
+ return validateIeProdutorRural(uf, input).ok;
425
+ }
426
+ function validateIeProdutorRural(uf, input) {
427
+ if (uf !== "SP") {
428
+ return failure2(
429
+ "UNSUPPORTED_FORMAT",
430
+ "Produtor rural Inscri\xE7\xE3o Estadual validation is supported for SP only; use validateInscricaoEstadual for other UFs",
431
+ uf
432
+ );
433
+ }
434
+ return validateIeSpRural(input);
435
+ }
436
+
437
+ // src/core/inscricao-estadual/mask.ts
438
+ function applyIeSpMask(stripped) {
439
+ if (stripped.length !== IE_SP_LENGTH) {
440
+ throw new Error("SP IE must have exactly 12 digits to apply mask");
441
+ }
442
+ return `${stripped.slice(0, 3)}.${stripped.slice(3, 6)}.${stripped.slice(6, 9)}.${stripped.slice(9)}`;
443
+ }
444
+ function applyIeSpRuralMask(stripped) {
445
+ if (stripped.length !== IE_SP_RURAL_LENGTH || !stripped.startsWith("P")) {
446
+ throw new Error("SP produtor rural IE must have exactly 13 characters starting with P to apply mask");
447
+ }
448
+ const body = stripped.slice(1);
449
+ return `P-${body.slice(0, 8)}.${body.charAt(8)}/${body.slice(9)}`;
450
+ }
451
+ function applyIeDfMask(stripped) {
452
+ if (stripped.length !== IE_DF_LENGTH) {
453
+ throw new Error("DF IE must have exactly 13 digits to apply mask");
454
+ }
455
+ return `${stripped.slice(0, 3)}.${stripped.slice(3, 8)}.${stripped.slice(8, 11)}-${stripped.slice(11)}`;
456
+ }
457
+
458
+ export { IE_AC_PREFIX, IE_AL_PREFIX, IE_AP_PREFIX, IE_DF_DV1_WEIGHTS, IE_DF_DV2_WEIGHTS, IE_DF_GOLDEN, IE_DF_GOLDEN_MASKED, IE_DF_LENGTH, IE_DF_OFFICIAL_SOURCE_URL, IE_DF_PREFIX, IE_GO_PREFIXES, IE_MA_PREFIX, IE_MS_PREFIX, IE_MT_CANONICAL_LENGTH, IE_MT_GOLDEN_CANONICAL, IE_MT_GOLDEN_LEGACY, IE_MT_LEGACY_LENGTH, IE_MT_OFFICIAL_SOURCE_URL, IE_MT_PREFIX, IE_OFFICIAL_SOURCE_URLS, IE_PA_PREFIX, IE_RN_PREFIX, IE_RR_PREFIX, IE_SP_DV1_WEIGHTS, IE_SP_DV2_WEIGHTS, IE_SP_GOLDEN, IE_SP_GOLDEN_MASKED, IE_SP_LENGTH, IE_SP_OFFICIAL_SOURCE_URL, IE_SP_RURAL_GOLDEN, IE_SP_RURAL_GOLDEN_MASKED, IE_SP_RURAL_LENGTH, IE_SP_RURAL_OFFICIAL_SOURCE_URL, IE_SUPPORTED_UFS, IE_TO_LEGACY_PREFIXES, applyIeDfMask, applyIeSpMask, applyIeSpRuralMask, computeIeAcCheckDigit, computeIeAlCheckDigit, computeIeAmCheckDigit, computeIeApCheckDigit, computeIeBaCheckDigit, computeIeBaModule, computeIeCeCheckDigit, computeIeCyclicMod11CheckDigit, computeIeDfCheckDigit, computeIeGoCheckDigit, computeIeMgFirstCheckDigit, computeIeMgSecondCheckDigit, computeIeMtCheckDigit, computeIePeCheckDigit, computeIePrStyleCheckDigit, computeIeRoCheckDigit, computeIeRrCheckDigit, computeIeSpCheckDigit, computeIeToCheckDigit, getIeProdutorRuralOfficialSourceUrl, isSpRuralIeInput, isValidIeProdutorRural, stripIeSpRural, validateIeProdutorRural, validateIeSpRural };
459
+ //# sourceMappingURL=chunk-Y6IW2LMW.js.map
460
+ //# sourceMappingURL=chunk-Y6IW2LMW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/inscricao-estadual/constants.ts","../src/core/inscricao-estadual/modulo-ie.ts","../src/core/inscricao-estadual/sp-rural.ts","../src/core/inscricao-estadual/validate-produtor-rural.ts","../src/core/inscricao-estadual/mask.ts"],"names":["failure"],"mappings":"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","file":"chunk-Y6IW2LMW.js","sourcesContent":["/**\n * Inscrição Estadual — per-UF constants (27 UFs).\n * @see docs/IE-STATE-ALGORITHMS.md\n */\nimport type { UfCode } from '../../types/validation-result.js';\n\nexport type { UfCode };\n\nexport const IE_SUPPORTED_UFS: readonly UfCode[] = [\n 'AC', 'AL', 'AM', 'AP', 'BA', 'CE', 'DF', 'ES', 'GO', 'MA', 'MG', 'MS', 'MT',\n 'PA', 'PB', 'PE', 'PI', 'PR', 'RJ', 'RN', 'RO', 'RR', 'RS', 'SC', 'SE', 'SP', 'TO',\n];\n\nexport const IE_OFFICIAL_SOURCE_URLS: Readonly<Record<UfCode, string>> = {\n AC: 'https://sefaz.ac.gov.br/',\n AL: 'https://www.sefaz.al.gov.br/calculo',\n AM: 'https://www.sefaz.am.gov.br/',\n AP: 'https://www.sefaz.ap.gov.br/',\n BA: 'https://www.sefaz.ba.gov.br/inspetoria-eletronica/icms/cadastro/calculo-dv/',\n CE: 'https://www.sefaz.ce.gov.br/',\n DF: 'https://www.receita.fazenda.df.gov.br/',\n ES: 'https://sitenet.es.gov.br/sefaz/',\n GO: 'http://www.sefaz.go.gov.br/ServicosAFA/ece.html',\n MA: 'https://www.sefaz.ma.gov.br/',\n MG: 'https://www.fazenda.mg.gov.br/empresas/Cadastro/cadastro/consultapublica.html',\n MS: 'https://www.sefaz.ms.gov.br/',\n MT: 'https://app1.sefaz.mt.gov.br/Sistema/legislacao/legislacaotribut.nsf/709f9c981a9d9f468425671300482be0/2217ddcf7a9b7cea03258c6c007324ba?OpenDocument=',\n PA: 'https://www.sefa.pa.gov.br/',\n PB: 'https://www.receita.pb.gov.br/',\n PE: 'https://www.sefaz.pe.gov.br/',\n PI: 'https://www.sefaz.pi.gov.br/',\n PR: 'https://www.fazenda.pr.gov.br/Pagina/calculo-digito-verificador',\n RJ: 'https://portal.fazenda.rj.gov.br/cadastro/',\n RN: 'https://www.set.rn.gov.br/',\n RO: 'https://www.sefin.ro.gov.br/',\n RR: 'https://www.sefaz.rr.gov.br/',\n RS: 'https://www.sefaz.rs.gov.br/',\n SC: 'https://sat.sef.sc.gov.br/',\n SE: 'https://www.sefaz.se.gov.br/',\n SP: 'https://portal.fazenda.sp.gov.br/servicos/icms/Paginas/sintegra-rotina-consistencia.aspx',\n TO: 'https://www.sefaz.to.gov.br/',\n};\n\nexport const IE_OFFICIAL_SOURCE_URL = 'docs/IE-STATE-ALGORITHMS.md';\n\nexport const IE_AC_PREFIX = '01';\nexport const IE_AL_PREFIX = '24';\nexport const IE_AM_PREFIX = '04';\nexport const IE_AP_PREFIX = '03';\nexport const IE_DF_PREFIX = '07';\nexport const IE_GO_PREFIXES = ['10', '11', '15', '20'] as const;\nexport const IE_MA_PREFIX = '12';\nexport const IE_MS_PREFIX = '28';\nexport const IE_MT_PREFIX = '13';\nexport const IE_PA_PREFIX = '15';\nexport const IE_RN_PREFIX = '20';\nexport const IE_RR_PREFIX = '24';\nexport const IE_TO_LEGACY_PREFIXES = ['01', '02', '03', '99'] as const;\n\nexport const IE_SP_LENGTH = 12;\nexport const IE_SP_DV1_WEIGHTS = [1, 3, 4, 5, 6, 7, 8, 10] as const;\nexport const IE_SP_DV2_WEIGHTS = [3, 2, 10, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const IE_SP_GOLDEN = '110042490114';\nexport const IE_SP_GOLDEN_MASKED = '110.042.490.114';\nexport const IE_SP_OFFICIAL_SOURCE_URL = IE_OFFICIAL_SOURCE_URLS.SP;\n\nexport const IE_SP_RURAL_LENGTH = 13;\nexport const IE_SP_RURAL_GOLDEN = 'P011004243002';\nexport const IE_SP_RURAL_GOLDEN_MASKED = 'P-01100424.3/002';\nexport const IE_SP_RURAL_OFFICIAL_SOURCE_URL = 'http://www.sintegra.gov.br/Cad_Estados/cad_SP.html';\n\nexport const IE_MT_CANONICAL_LENGTH = 9;\nexport const IE_MT_LEGACY_LENGTH = 11;\nexport const IE_MT_DV_WEIGHTS = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const IE_MT_GOLDEN_LEGACY = '00130000019';\nexport const IE_MT_GOLDEN_CANONICAL = '130000019';\nexport const IE_MT_OFFICIAL_SOURCE_URL = IE_OFFICIAL_SOURCE_URLS.MT;\n\nexport const IE_DF_LENGTH = 13;\nexport const IE_DF_DV1_WEIGHTS = [4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const IE_DF_DV2_WEIGHTS = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const IE_DF_GOLDEN = '0730000100109';\nexport const IE_DF_GOLDEN_MASKED = '073.00001.001-09';\nexport const IE_DF_OFFICIAL_SOURCE_URL = IE_OFFICIAL_SOURCE_URLS.DF;\n","/**\n * Shared modulo helpers for IE check digits.\n */\n\nexport function computeIeSpCheckDigit(digits: string, weights: readonly number[]): number {\n let sum = 0;\n for (let i = 0; i < weights.length; i++) {\n sum += Number(digits[i]) * weights[i];\n }\n const remainder = sum % 11;\n return remainder === 10 ? 0 : remainder % 10;\n}\n\nexport function computeIeMtCheckDigit(digits10: string): number {\n let sum = 0;\n const weights = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n for (let i = 0; i < 10; i++) {\n sum += Number(digits10[i]) * weights[i];\n }\n const remainder = sum % 11;\n return remainder <= 1 ? 0 : 11 - remainder;\n}\n\nexport function computeIeDfCheckDigit(\n digits: string,\n weights: readonly number[],\n includeDv1 = false,\n dv1 = 0,\n): number {\n let sum = 0;\n const digitCount = includeDv1 ? 11 : digits.length;\n for (let i = 0; i < digitCount; i++) {\n sum += Number(digits[i]) * weights[i];\n }\n if (includeDv1) {\n sum += dv1 * weights[11];\n }\n const remainder = sum % 11;\n return remainder <= 1 ? 0 : 11 - remainder;\n}\n\n/** CE / SC / SE / PB / PI — weights 9..2 on 8 body digits. */\nexport function computeIeCeCheckDigit(body8: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** AL — product×10 mod 11. */\nexport function computeIeAlCheckDigit(body8: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n const product = sum * 10;\n let digit = product - Math.floor(product / 11) * 11;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** AM — descending weights with special remainder rule. */\nexport function computeIeAmCheckDigit(body8: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n if (sum < 11) {\n return 11 - sum;\n }\n const remainder = sum % 11;\n let digit = 11 - remainder;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** PR / AC style — mod11, weights cycle 2..7 from right. */\nexport function computeIePrStyleCheckDigit(body: string): number {\n let weight = body.length - 5;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = 7;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** AC — weights cycle 9..2 from left. */\nexport function computeIeAcCheckDigit(body: string): number {\n let weight = body.length - 7;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = 9;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** BA — mod10 or mod11 by reference digit. */\nexport function computeIeBaModule(ie: string): number {\n const refIndex = ie.length === 9 ? 1 : 0;\n const refDigit = Number(ie[refIndex]);\n const mod10Digits = [0, 1, 2, 3, 4, 5, 8];\n return mod10Digits.includes(refDigit) ? 10 : 11;\n}\n\nexport function computeIeBaCheckDigit(body: string, mod: number): number {\n let weight = body.length + 1;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n }\n const rest = sum % mod;\n let digit = mod - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** PE — dual DV, weights length+1..2. */\nexport function computeIePeCheckDigit(body: string): number {\n let weight = body.length + 1;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** RJ / RS / RO — cyclic descending weights. */\nexport function computeIeCyclicMod11CheckDigit(\n body: string,\n startWeight: number,\n resetWeight: number,\n): number {\n let weight = startWeight;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = resetWeight;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n\n/** RO — cyclic weights 6..9, subtract 10 when digit >= 10. */\nexport function computeIeRoCheckDigit(body: string): number {\n let weight = 6;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = 9;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit -= 10;\n }\n return digit;\n}\n\n/** GO — mod11 with special range override. */\nexport function computeIeGoCheckDigit(body8: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n const bodyInt = Number(body8);\n if (digit >= 10) {\n if (digit === 11 && bodyInt >= 10103105 && bodyInt <= 10119997) {\n digit = 1;\n } else {\n digit = 0;\n }\n }\n return digit;\n}\n\n/** AP — prefix 03 with range-based p/d constants. */\nexport function computeIeApCheckDigit(body8: string): number {\n const bodyInt = Number(body8);\n let p = 0;\n let d = 0;\n if (bodyInt >= 3000001 && bodyInt <= 3017000) {\n p = 5;\n d = 0;\n } else if (bodyInt >= 3017001 && bodyInt <= 3019022) {\n p = 9;\n d = 1;\n }\n let weight = 9;\n let sum = p;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight--;\n }\n let digit = 11 - (sum % 11);\n if (digit === 10) {\n digit = 0;\n } else if (digit === 11) {\n digit = d;\n }\n return digit;\n}\n\n/** RR — mod9, ascending weights 1..8. */\nexport function computeIeRrCheckDigit(body8: string): number {\n let weight = 1;\n let sum = 0;\n for (let i = 0; i < 8; i++) {\n sum += Number(body8[i]) * weight;\n weight++;\n }\n return sum % 9;\n}\n\n/** TO — mod11, rest < 2 → DV 0. */\nexport function computeIeToCheckDigit(body: string): number {\n let weight = 9;\n let sum = 0;\n for (let i = 0; i < body.length; i++) {\n sum += Number(body[i]) * weight;\n weight--;\n }\n const rest = sum % 11;\n if (rest < 2) {\n return 0;\n }\n return 11 - rest;\n}\n\n/** MG — first DV via digit-sum on alternating products. */\nexport function computeIeMgFirstCheckDigit(body11: string): number {\n const bodyWithZero = `${body11.slice(0, 3)}0${body11.slice(3)}`;\n let weightedSum = '';\n for (let i = 0; i < bodyWithZero.length; i++) {\n const w = (i + 1) % 2 === 0 ? 2 : 1;\n weightedSum += (Number(bodyWithZero[i]) * w).toString();\n }\n let sum = 0;\n for (let i = 0; i < weightedSum.length; i++) {\n sum += Number(weightedSum[i]);\n }\n const lastDigit = Number(sum.toString().slice(-1));\n return lastDigit === 0 ? 0 : 10 - lastDigit;\n}\n\n/** MG — second DV, weights 3..11 cycling. */\nexport function computeIeMgSecondCheckDigit(body12: string): number {\n let weight = 3;\n let sum = 0;\n for (let i = 0; i < body12.length; i++) {\n sum += Number(body12[i]) * weight;\n weight--;\n if (weight === 1) {\n weight = 11;\n }\n }\n const rest = sum % 11;\n let digit = 11 - rest;\n if (digit >= 10) {\n digit = 0;\n }\n return digit;\n}\n","/**\n * São Paulo produtor rural IE — Regra II (SINTEGRA cad_SP.html Bloco II).\n * @see BR-IE-SP-RURAL-001\n * @see http://www.sintegra.gov.br/Cad_Estados/cad_SP.html\n */\nimport type { IeProdutorRuralValidationResult } from '../../types/validation-result.js';\nimport { brandInscricaoEstadualProdutorRural } from '../../types/validation-result.js';\nimport { IE_SP_DV1_WEIGHTS, IE_SP_RURAL_LENGTH } from './constants.js';\nimport { computeIeSpCheckDigit } from './modulo-ie.js';\n\ntype FailedResult = Extract<IeProdutorRuralValidationResult, { ok: false }>;\n\nconst SP_RURAL_MASK_PATTERN = /^[Pp0-9.\\-\\s/]+$/;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message, uf: 'SP' };\n}\n\nexport function isSpRuralIeInput(input: string): boolean {\n return /^[Pp]/.test(input.trim());\n}\n\nexport function stripIeSpRural(input: string): string {\n const trimmed = input.trim().toUpperCase();\n const digits = trimmed.replace(/^[P]/, '').replace(/\\D/g, '');\n return `P${digits}`;\n}\n\nexport function validateIeSpRural(input: string): IeProdutorRuralValidationResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Inscrição Estadual produtor rural input is empty', uf: 'SP' };\n }\n\n if (!/^[Pp]/.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'SP produtor rural Inscrição Estadual must start with P');\n }\n\n if (!SP_RURAL_MASK_PATTERN.test(trimmed)) {\n return failure('INVALID_CHARACTER', 'SP produtor rural Inscrição Estadual contains invalid characters');\n }\n\n const stripped = stripIeSpRural(trimmed);\n if (stripped.length !== IE_SP_RURAL_LENGTH) {\n return failure(\n 'INVALID_LENGTH',\n `SP produtor rural Inscrição Estadual must have ${IE_SP_RURAL_LENGTH} characters after normalization`,\n );\n }\n\n const dvInput = stripped.slice(1, 9);\n const expectedDv = computeIeSpCheckDigit(dvInput, IE_SP_DV1_WEIGHTS);\n const actualDv = Number(stripped.charAt(9));\n\n if (actualDv !== expectedDv) {\n return failure('INVALID_CHECK_DIGIT', 'SP produtor rural Inscrição Estadual check digit is invalid');\n }\n\n return {\n ok: true,\n value: brandInscricaoEstadualProdutorRural(stripped),\n uf: 'SP',\n format: 'inscricao-estadual-produtor-rural',\n };\n}\n","/**\n * Inscrição Estadual produtor rural — SP Regra II only.\n * @see http://www.sintegra.gov.br/Cad_Estados/cad_SP.html\n */\nimport type { IeProdutorRuralValidationResult, UfCode } from '../../types/validation-result.js';\nimport { IE_SP_RURAL_OFFICIAL_SOURCE_URL } from './constants.js';\nimport { validateIeSpRural } from './sp-rural.js';\n\ntype FailedResult = Extract<IeProdutorRuralValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string, uf: UfCode): FailedResult {\n return { ok: false, code, message, uf };\n}\n\nexport function getIeProdutorRuralOfficialSourceUrl(): string {\n return IE_SP_RURAL_OFFICIAL_SOURCE_URL;\n}\n\nexport function isValidIeProdutorRural(uf: UfCode, input: string): boolean {\n return validateIeProdutorRural(uf, input).ok;\n}\n\nexport function validateIeProdutorRural(uf: UfCode, input: string): IeProdutorRuralValidationResult {\n if (uf !== 'SP') {\n return failure(\n 'UNSUPPORTED_FORMAT',\n 'Produtor rural Inscrição Estadual validation is supported for SP only; use validateInscricaoEstadual for other UFs',\n uf,\n );\n }\n return validateIeSpRural(input);\n}\n","import { IE_DF_LENGTH, IE_SP_LENGTH, IE_SP_RURAL_LENGTH } from './constants.js';\n\nexport function applyIeSpMask(stripped: string): string {\n if (stripped.length !== IE_SP_LENGTH) {\n throw new Error('SP IE must have exactly 12 digits to apply mask');\n }\n return `${stripped.slice(0, 3)}.${stripped.slice(3, 6)}.${stripped.slice(6, 9)}.${stripped.slice(9)}`;\n}\n\nexport function applyIeSpRuralMask(stripped: string): string {\n if (stripped.length !== IE_SP_RURAL_LENGTH || !stripped.startsWith('P')) {\n throw new Error('SP produtor rural IE must have exactly 13 characters starting with P to apply mask');\n }\n const body = stripped.slice(1);\n return `P-${body.slice(0, 8)}.${body.charAt(8)}/${body.slice(9)}`;\n}\n\nexport function applyIeDfMask(stripped: string): string {\n if (stripped.length !== IE_DF_LENGTH) {\n throw new Error('DF IE must have exactly 13 digits to apply mask');\n }\n return `${stripped.slice(0, 3)}.${stripped.slice(3, 8)}.${stripped.slice(8, 11)}-${stripped.slice(11)}`;\n}\n"]}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=chunk-YGA5W54J.js.map
3
+ //# sourceMappingURL=chunk-YGA5W54J.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-YGA5W54J.js"}
@@ -1,6 +1,6 @@
1
1
  import { stripCnpj } from './chunk-EB3G4IG6.js';
2
- import { computeCheckDigit } from './chunk-B2TDI3YS.js';
3
- import { brandCnpj } from './chunk-BBL6ZPXH.js';
2
+ import { computeCheckDigit } from './chunk-OTZHMJYE.js';
3
+ import { brandCnpj } from './chunk-MSLJF2FM.js';
4
4
 
5
5
  // src/core/cnpj/constants.ts
6
6
  var CNPJ_LENGTH = 14;
@@ -142,15 +142,6 @@ function validateCnpj(input) {
142
142
  return failure("INVALID_CHECK_DIGIT", "CNPJ check digits are invalid");
143
143
  }
144
144
 
145
- // src/core/cnpj/mask.ts
146
- function applyCnpjMask(canonical) {
147
- const match = CNPJ_MASK_PATTERN.exec(canonical);
148
- if (!match) {
149
- throw new Error("CNPJ must have exactly 14 characters to apply mask");
150
- }
151
- return `${match[1]}.${match[2]}.${match[3]}/${match[4]}-${match[5]}`;
152
- }
153
-
154
- export { CNPJ_GOLDEN_ALPHANUMERIC, CNPJ_GOLDEN_ALPHANUMERIC_MASKED, CNPJ_GOLDEN_NUMERIC, CNPJ_GOLDEN_NUMERIC_MASKED, CNPJ_OFFICIAL_SOURCE_URL, applyCnpjMask, detectCnpjFormat, isValidCnpj, isValidCnpjAlphanumeric, isValidCnpjNumeric, validateCnpj };
155
- //# sourceMappingURL=chunk-UE4PVN6Y.js.map
156
- //# sourceMappingURL=chunk-UE4PVN6Y.js.map
145
+ export { CNPJ_BASE_LENGTH, CNPJ_DV1_WEIGHTS, CNPJ_DV2_WEIGHTS, CNPJ_GOLDEN_ALPHANUMERIC, CNPJ_GOLDEN_ALPHANUMERIC_MASKED, CNPJ_GOLDEN_NUMERIC, CNPJ_GOLDEN_NUMERIC_MASKED, CNPJ_LENGTH, CNPJ_MASK_PATTERN, CNPJ_OFFICIAL_SOURCE_URL, cnpjCharValue, detectCnpjFormat, isValidCnpj, isValidCnpjAlphanumeric, isValidCnpjNumeric, validateCnpj };
146
+ //# sourceMappingURL=chunk-YXELVV37.js.map
147
+ //# sourceMappingURL=chunk-YXELVV37.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/cnpj/constants.ts","../src/core/cnpj/ascii-value.ts","../src/core/cnpj/alphanumeric.ts","../src/core/cnpj/detect.ts","../src/core/cnpj/numeric.ts","../src/core/cnpj/index.ts"],"names":[],"mappings":"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","file":"chunk-YXELVV37.js","sourcesContent":["/**\n * CNPJ constants — modulo 11 weights from RFB FAQ Q14.\n * @see https://www.gov.br/receitafederal/pt-br/centrais-de-conteudo/publicacoes/perguntas-e-respostas/cnpj/cnpj-alfanumerico.pdf\n */\nexport const CNPJ_LENGTH = 14;\nexport const CNPJ_BASE_LENGTH = 12;\n\nexport const CNPJ_DV1_WEIGHTS = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const CNPJ_DV2_WEIGHTS = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\n\nexport const CNPJ_ALPHANUMERIC_PATTERN = /^[A-Z0-9]{12}[0-9]{2}$/;\nexport const CNPJ_NUMERIC_PATTERN = /^[0-9]{14}$/;\n\nexport const CNPJ_OFFICIAL_SOURCE_URL =\n 'https://www.gov.br/receitafederal/pt-br/centrais-de-conteudo/publicacoes/perguntas-e-respostas/cnpj/cnpj-alfanumerico.pdf';\n\n/** RFB Q14 golden vector */\nexport const CNPJ_GOLDEN_ALPHANUMERIC = '12ABC34501DE35';\n\n/** Valid numeric CNPJ for regression tests (modulo 11) */\nexport const CNPJ_GOLDEN_NUMERIC = '11222333000181';\nexport const CNPJ_GOLDEN_NUMERIC_MASKED = '11.222.333/0001-81';\nexport const CNPJ_GOLDEN_ALPHANUMERIC_MASKED = '12.ABC.345/01DE-35';\n\nexport const CNPJ_MASK_PATTERN = /^(.{2})(.{3})(.{3})(.{4})(.{2})$/;\n","/**\n * Character value for CNPJ modulo 11 — ASCII decimal minus 48 (RFB Q14).\n * @see https://www.gov.br/receitafederal/pt-br/centrais-de-conteudo/publicacoes/perguntas-e-respostas/cnpj/cnpj-alfanumerico.pdf\n */\nexport function cnpjCharValue(char: string): number {\n return char.charCodeAt(0) - 48;\n}\n","import { CNPJ_ALPHANUMERIC_PATTERN, CNPJ_BASE_LENGTH, CNPJ_DV1_WEIGHTS, CNPJ_DV2_WEIGHTS, CNPJ_LENGTH } from './constants.js';\nimport { cnpjCharValue } from './ascii-value.js';\nimport { computeCheckDigit } from './modulo11.js';\n\nfunction hasRepeatedChars(value: string): boolean {\n const first = value[0];\n for (let i = 1; i < value.length; i++) {\n if (value[i] !== first) {\n return false;\n }\n }\n return true;\n}\n\nfunction isValidStructure(canonical: string): boolean {\n return canonical.length === CNPJ_LENGTH && CNPJ_ALPHANUMERIC_PATTERN.test(canonical);\n}\n\n/**\n * Alphanumeric CNPJ — ASCII-48 modulo 11 (RFB Q14).\n * Golden vector: 12ABC34501DE35\n */\nexport function isValidCnpjAlphanumeric(input: string): boolean {\n const canonical = input.toUpperCase();\n if (!isValidStructure(canonical)) {\n return false;\n }\n if (hasRepeatedChars(canonical)) {\n return false;\n }\n\n const base = canonical.slice(0, CNPJ_BASE_LENGTH);\n const dv1Expected = String(computeCheckDigit(base, CNPJ_DV1_WEIGHTS, cnpjCharValue));\n const dv2Expected = String(\n computeCheckDigit(base + dv1Expected, CNPJ_DV2_WEIGHTS, cnpjCharValue),\n );\n\n return canonical.slice(CNPJ_BASE_LENGTH) === dv1Expected + dv2Expected;\n}\n","import { CNPJ_ALPHANUMERIC_PATTERN, CNPJ_NUMERIC_PATTERN } from './constants.js';\nimport type { DocumentFormat } from '../../types/validation-result.js';\n\nexport function detectCnpjFormat(stripped: string): DocumentFormat | 'unknown' {\n const upper = stripped.toUpperCase();\n if (CNPJ_NUMERIC_PATTERN.test(upper)) {\n return 'numeric';\n }\n if (CNPJ_ALPHANUMERIC_PATTERN.test(upper)) {\n return 'alphanumeric';\n }\n return 'unknown';\n}\n\nexport function containsLetter(value: string): boolean {\n return /[A-Za-z]/.test(value);\n}\n","import { CNPJ_BASE_LENGTH, CNPJ_DV1_WEIGHTS, CNPJ_DV2_WEIGHTS, CNPJ_NUMERIC_PATTERN } from './constants.js';\nimport { computeCheckDigit } from './modulo11.js';\n\nfunction digitValue(char: string): number {\n return Number(char);\n}\n\nfunction hasRepeatedDigits(value: string): boolean {\n const first = value[0];\n for (let i = 1; i < value.length; i++) {\n if (value[i] !== first) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Numeric CNPJ — traditional modulo 11 on digits (RFB Q6–Q7 coexistence).\n */\nexport function isValidCnpjNumeric(input: string): boolean {\n const canonical = input.replace(/\\D/g, '');\n if (!CNPJ_NUMERIC_PATTERN.test(canonical)) {\n return false;\n }\n if (hasRepeatedDigits(canonical)) {\n return false;\n }\n\n const base = canonical.slice(0, CNPJ_BASE_LENGTH);\n const dv1Expected = String(computeCheckDigit(base, CNPJ_DV1_WEIGHTS, digitValue));\n const dv2Expected = String(\n computeCheckDigit(base + dv1Expected, CNPJ_DV2_WEIGHTS, digitValue),\n );\n\n return canonical.slice(CNPJ_BASE_LENGTH) === dv1Expected + dv2Expected;\n}\n","import { stripCnpj } from '../../strip/cnpj.js';\nimport type { DocumentFormat, ValidationResult } from '../../types/validation-result.js';\nimport { brandCnpj } from '../../types/validation-result.js';\nimport { isValidCnpjAlphanumeric } from './alphanumeric.js';\nimport { CNPJ_LENGTH } from './constants.js';\nimport { containsLetter, detectCnpjFormat } from './detect.js';\nimport { isValidCnpjNumeric } from './numeric.js';\n\nexport { detectCnpjFormat, containsLetter } from './detect.js';\nexport { isValidCnpjAlphanumeric } from './alphanumeric.js';\nexport { isValidCnpjNumeric } from './numeric.js';\nexport {\n CNPJ_GOLDEN_ALPHANUMERIC,\n CNPJ_GOLDEN_ALPHANUMERIC_MASKED,\n CNPJ_GOLDEN_NUMERIC,\n CNPJ_GOLDEN_NUMERIC_MASKED,\n CNPJ_OFFICIAL_SOURCE_URL,\n} from './constants.js';\n\ntype FailedResult = Extract<ValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message };\n}\n\nfunction validateStructure(\n input: string,\n stripped: string,\n): FailedResult | { format: DocumentFormat } {\n if (stripped.length === 0) {\n return failure('EMPTY_INPUT', 'CNPJ input is empty');\n }\n\n const withoutMask = input.replace(/[.\\-/]/g, '');\n if (/[^A-Za-z0-9]/.test(withoutMask)) {\n return failure('INVALID_CHARACTER', 'CNPJ contains invalid characters');\n }\n\n if (stripped.length !== CNPJ_LENGTH) {\n return failure('INVALID_LENGTH', `CNPJ must have ${CNPJ_LENGTH} characters after normalization`);\n }\n\n const format = detectCnpjFormat(stripped);\n if (format === 'unknown') {\n return failure('UNSUPPORTED_FORMAT', 'CNPJ format is not numeric or alphanumeric');\n }\n\n return { format };\n}\n\nexport function isValidCnpj(input: string): boolean {\n return validateCnpj(input).ok;\n}\n\nexport function validateCnpj(input: string): ValidationResult {\n const stripped = stripCnpj(input);\n const structural = validateStructure(input, stripped);\n if ('ok' in structural) {\n return structural;\n }\n\n const { format } = structural;\n\n if (format === 'numeric' || !containsLetter(stripped)) {\n if (isValidCnpjNumeric(stripped)) {\n return { ok: true, value: brandCnpj(stripped), format: 'numeric' };\n }\n if (format === 'numeric') {\n if (/^(\\d)\\1{13}$/.test(stripped)) {\n return failure('KNOWN_INVALID_PATTERN', 'CNPJ with all identical digits is invalid');\n }\n return failure('INVALID_CHECK_DIGIT', 'CNPJ check digits are invalid');\n }\n }\n\n if (isValidCnpjAlphanumeric(stripped)) {\n return { ok: true, value: brandCnpj(stripped), format: 'alphanumeric' };\n }\n\n return failure('INVALID_CHECK_DIGIT', 'CNPJ check digits are invalid');\n}\n"]}
@@ -0,0 +1,28 @@
1
+ // src/strip/cep.ts
2
+ function stripCep(input) {
3
+ return input.replace(/\D/g, "");
4
+ }
5
+
6
+ // src/strip/cnh.ts
7
+ function stripCnh(input) {
8
+ return input.replace(/\D/g, "");
9
+ }
10
+
11
+ // src/strip/renavam.ts
12
+ function stripRenavam(input) {
13
+ return input.replace(/\D/g, "");
14
+ }
15
+
16
+ // src/strip/titulo-eleitor.ts
17
+ function stripTituloEleitor(input) {
18
+ return input.replace(/\D/g, "");
19
+ }
20
+
21
+ // src/strip/placa.ts
22
+ function stripPlaca(input) {
23
+ return input.replace(/[^A-Za-z0-9]/g, "").toUpperCase();
24
+ }
25
+
26
+ export { stripCep, stripCnh, stripPlaca, stripRenavam, stripTituloEleitor };
27
+ //# sourceMappingURL=chunk-YYHS5WQN.js.map
28
+ //# sourceMappingURL=chunk-YYHS5WQN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/strip/cep.ts","../src/strip/cnh.ts","../src/strip/renavam.ts","../src/strip/titulo-eleitor.ts","../src/strip/placa.ts"],"names":[],"mappings":";AAIO,SAAS,SAAS,KAAA,EAAuB;AAC9C,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAChC;;;ACDO,SAAS,SAAS,KAAA,EAAuB;AAC9C,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAChC;;;ACHO,SAAS,aAAa,KAAA,EAAuB;AAClD,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAChC;;;ACFO,SAAS,mBAAmB,KAAA,EAAuB;AACxD,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAChC;;;ACFO,SAAS,WAAW,KAAA,EAAuB;AAChD,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,eAAA,EAAiB,EAAE,EAAE,WAAA,EAAY;AACxD","file":"chunk-YYHS5WQN.js","sourcesContent":["/**\n * Strip CEP mask — digits only (BR-CEP-001).\n * @see https://www.correios.com.br/atendimento/developers/manuais/manual-api-busca-cep\n */\nexport function stripCep(input: string): string {\n return input.replace(/\\D/g, '');\n}\n","/**\n * Strip CNH — digits only (BR-CNH-002). Removes non-official decoration (e.g. CPF-style dots).\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao5112014.pdf\n * @see https://www.gov.br/pt-br/servicos/validar-cnh\n */\nexport function stripCnh(input: string): string {\n return input.replace(/\\D/g, '');\n}\n","/**\n * Strip RENAVAM — digits only (BR-RENAVAM-002).\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/arquivos-senatran/portarias/2013/portaria0272013.pdf\n */\nexport function stripRenavam(input: string): string {\n return input.replace(/\\D/g, '');\n}\n","/**\n * Strip Título de Eleitor — digits only (BR-TITULO-002).\n * @see https://pt.wikipedia.org/wiki/T%C3%ADtulo_eleitoral#C%C3%A1lculo_do_d%C3%ADgito_verificador\n */\nexport function stripTituloEleitor(input: string): string {\n return input.replace(/\\D/g, '');\n}\n","/**\n * Strip placa mask — preserve A-Z0-9, uppercase (BR-PLACA-004).\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao7292018consolidada.pdf\n */\nexport function stripPlaca(input: string): string {\n return input.replace(/[^A-Za-z0-9]/g, '').toUpperCase();\n}\n"]}
@@ -0,0 +1,23 @@
1
+ import { validateCep, CEP_MASK_PATTERN } from './chunk-2JJS46FM.js';
2
+
3
+ // src/core/cep/mask.ts
4
+ function applyCepMask(canonical) {
5
+ const match = CEP_MASK_PATTERN.exec(canonical);
6
+ if (!match) {
7
+ throw new Error("CEP must have exactly 8 digits to apply mask");
8
+ }
9
+ return `${match[1]}-${match[2]}`;
10
+ }
11
+
12
+ // src/format/cep.ts
13
+ function formatCep(input) {
14
+ const result = validateCep(input);
15
+ if (!result.ok) {
16
+ return { ok: false, code: result.code, message: result.message };
17
+ }
18
+ return { ok: true, formatted: applyCepMask(result.value) };
19
+ }
20
+
21
+ export { formatCep };
22
+ //# sourceMappingURL=chunk-ZAUZRIOU.js.map
23
+ //# sourceMappingURL=chunk-ZAUZRIOU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/cep/mask.ts","../src/format/cep.ts"],"names":[],"mappings":";;;AAGO,SAAS,aAAa,SAAA,EAA2B;AACtD,EAAA,MAAM,KAAA,GAAQ,gBAAA,CAAiB,IAAA,CAAK,SAAS,CAAA;AAC7C,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,MAAM,8CAA8C,CAAA;AAAA,EAChE;AACA,EAAA,OAAO,GAAG,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA,EAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAChC;;;ACLO,SAAS,UAAU,KAAA,EAA6B;AACrD,EAAA,MAAM,MAAA,GAAS,YAAY,KAAK,CAAA;AAChC,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AACA,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,WAAW,YAAA,CAAa,MAAA,CAAO,KAAK,CAAA,EAAE;AAC3D","file":"chunk-ZAUZRIOU.js","sourcesContent":["import { CEP_MASK_PATTERN } from './constants.js';\n\n/** Mask XXXXX-XXX (BR-CEP-004). */\nexport function applyCepMask(canonical: string): string {\n const match = CEP_MASK_PATTERN.exec(canonical);\n if (!match) {\n throw new Error('CEP must have exactly 8 digits to apply mask');\n }\n return `${match[1]}-${match[2]}`;\n}\n","import { applyCepMask } from '../core/cep/mask.js';\nimport { validateCep } from '../core/cep/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatCep(input: string): FormatResult {\n const result = validateCep(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyCepMask(result.value) };\n}\n"]}