@br-validators/core 0.12.0-alpha.3 → 1.1.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 (180) hide show
  1. package/README.md +84 -12
  2. package/dist/bancos.d.ts +41 -0
  3. package/dist/bancos.js +3328 -0
  4. package/dist/bancos.js.map +1 -0
  5. package/dist/batch.d.ts +28 -0
  6. package/dist/batch.js +30 -0
  7. package/dist/batch.js.map +1 -0
  8. package/dist/boleto.d.ts +58 -5
  9. package/dist/boleto.js +6 -3
  10. package/dist/brcode.d.ts +15 -3
  11. package/dist/brcode.js +8 -8
  12. package/dist/cartao-credito.d.ts +2 -2
  13. package/dist/cartao-credito.js +3 -3
  14. package/dist/cep.d.ts +2 -2
  15. package/dist/cep.js +4 -4
  16. package/dist/{chunk-WPL47PWJ.js → chunk-3LMDBXU6.js} +3 -3
  17. package/dist/{chunk-WPL47PWJ.js.map → chunk-3LMDBXU6.js.map} +1 -1
  18. package/dist/chunk-4J5IMD7B.js +3 -0
  19. package/dist/chunk-4J5IMD7B.js.map +1 -0
  20. package/dist/{chunk-BFZPCEYB.js → chunk-54UWHK5L.js} +3 -3
  21. package/dist/{chunk-BFZPCEYB.js.map → chunk-54UWHK5L.js.map} +1 -1
  22. package/dist/chunk-5V6N4JWQ.js +135 -0
  23. package/dist/chunk-5V6N4JWQ.js.map +1 -0
  24. package/dist/{chunk-F6PTZY4O.js → chunk-63G7QO73.js} +3 -3
  25. package/dist/{chunk-F6PTZY4O.js.map → chunk-63G7QO73.js.map} +1 -1
  26. package/dist/{chunk-3QP6R46N.js → chunk-665E36SC.js} +4 -4
  27. package/dist/{chunk-3QP6R46N.js.map → chunk-665E36SC.js.map} +1 -1
  28. package/dist/{chunk-AK5GVYQ5.js → chunk-ANWQBKGN.js} +3 -3
  29. package/dist/{chunk-AK5GVYQ5.js.map → chunk-ANWQBKGN.js.map} +1 -1
  30. package/dist/{chunk-D36RM7OD.js → chunk-AO6UTQ4A.js} +3 -3
  31. package/dist/{chunk-D36RM7OD.js.map → chunk-AO6UTQ4A.js.map} +1 -1
  32. package/dist/chunk-ASQ2XIN2.js +99 -0
  33. package/dist/chunk-ASQ2XIN2.js.map +1 -0
  34. package/dist/chunk-AU6TW3GH.js +136 -0
  35. package/dist/chunk-AU6TW3GH.js.map +1 -0
  36. package/dist/{chunk-XW5G2RAL.js → chunk-B6A7VF4R.js} +3 -3
  37. package/dist/{chunk-XW5G2RAL.js.map → chunk-B6A7VF4R.js.map} +1 -1
  38. package/dist/{chunk-Q7B5VOPW.js → chunk-BA3FAVK4.js} +243 -37
  39. package/dist/chunk-BA3FAVK4.js.map +1 -0
  40. package/dist/{chunk-Y6IW2LMW.js → chunk-CDNOUZEI.js} +3 -3
  41. package/dist/{chunk-Y6IW2LMW.js.map → chunk-CDNOUZEI.js.map} +1 -1
  42. package/dist/{chunk-XUO7FV6Z.js → chunk-CSRBRKXY.js} +3 -3
  43. package/dist/{chunk-XUO7FV6Z.js.map → chunk-CSRBRKXY.js.map} +1 -1
  44. package/dist/{chunk-DJUANFIK.js → chunk-CSVGWTCG.js} +3 -3
  45. package/dist/{chunk-DJUANFIK.js.map → chunk-CSVGWTCG.js.map} +1 -1
  46. package/dist/chunk-E2EFGMWA.js +200 -0
  47. package/dist/chunk-E2EFGMWA.js.map +1 -0
  48. package/dist/chunk-EFEE6CMO.js +24091 -0
  49. package/dist/chunk-EFEE6CMO.js.map +1 -0
  50. package/dist/{chunk-KSLDM5AD.js → chunk-EVULAGR5.js} +3 -3
  51. package/dist/{chunk-KSLDM5AD.js.map → chunk-EVULAGR5.js.map} +1 -1
  52. package/dist/{chunk-YXELVV37.js → chunk-FBARVLLP.js} +4 -4
  53. package/dist/{chunk-YXELVV37.js.map → chunk-FBARVLLP.js.map} +1 -1
  54. package/dist/chunk-FOP5LO7W.js +131 -0
  55. package/dist/chunk-FOP5LO7W.js.map +1 -0
  56. package/dist/{chunk-MK7OJUF5.js → chunk-H3MLGGFI.js} +8 -8
  57. package/dist/{chunk-MK7OJUF5.js.map → chunk-H3MLGGFI.js.map} +1 -1
  58. package/dist/{chunk-WLE2ENQA.js → chunk-I66ZRSEN.js} +3 -3
  59. package/dist/{chunk-WLE2ENQA.js.map → chunk-I66ZRSEN.js.map} +1 -1
  60. package/dist/{chunk-GRDUTHNX.js → chunk-IYOPXJLY.js} +3 -3
  61. package/dist/{chunk-GRDUTHNX.js.map → chunk-IYOPXJLY.js.map} +1 -1
  62. package/dist/chunk-JCWQDTZB.js +41 -0
  63. package/dist/chunk-JCWQDTZB.js.map +1 -0
  64. package/dist/{chunk-4Y2FBO57.js → chunk-JKDU7QYP.js} +3 -3
  65. package/dist/{chunk-4Y2FBO57.js.map → chunk-JKDU7QYP.js.map} +1 -1
  66. package/dist/{chunk-KH7DWOUA.js → chunk-JLCQ7MGC.js} +3 -3
  67. package/dist/{chunk-KH7DWOUA.js.map → chunk-JLCQ7MGC.js.map} +1 -1
  68. package/dist/chunk-KBNWI6GE.js +3 -0
  69. package/dist/chunk-KBNWI6GE.js.map +1 -0
  70. package/dist/chunk-KLPONHBL.js +3 -0
  71. package/dist/chunk-KLPONHBL.js.map +1 -0
  72. package/dist/chunk-KTEQPYYN.js +31 -0
  73. package/dist/chunk-KTEQPYYN.js.map +1 -0
  74. package/dist/{chunk-CDGRHI7W.js → chunk-LAEUXOF6.js} +3 -3
  75. package/dist/{chunk-CDGRHI7W.js.map → chunk-LAEUXOF6.js.map} +1 -1
  76. package/dist/chunk-LRUZVPLR.js +93 -0
  77. package/dist/chunk-LRUZVPLR.js.map +1 -0
  78. package/dist/{chunk-ZAUZRIOU.js → chunk-MESOO5GZ.js} +3 -3
  79. package/dist/{chunk-ZAUZRIOU.js.map → chunk-MESOO5GZ.js.map} +1 -1
  80. package/dist/chunk-MKYCKCZ6.js +100 -0
  81. package/dist/chunk-MKYCKCZ6.js.map +1 -0
  82. package/dist/chunk-N5CER3QZ.js +128 -0
  83. package/dist/chunk-N5CER3QZ.js.map +1 -0
  84. package/dist/chunk-N6RQICAP.js +220 -0
  85. package/dist/chunk-N6RQICAP.js.map +1 -0
  86. package/dist/{chunk-MSLJF2FM.js → chunk-NUQSMT4Y.js} +2 -2
  87. package/dist/chunk-NUQSMT4Y.js.map +1 -0
  88. package/dist/{chunk-KQDLIGSG.js → chunk-P2KNN6ZR.js} +3 -3
  89. package/dist/{chunk-KQDLIGSG.js.map → chunk-P2KNN6ZR.js.map} +1 -1
  90. package/dist/{chunk-JZNTCZMV.js → chunk-PCP77SLS.js} +34 -18
  91. package/dist/chunk-PCP77SLS.js.map +1 -0
  92. package/dist/{chunk-G2Y63PIF.js → chunk-PNPESCSP.js} +3 -3
  93. package/dist/{chunk-G2Y63PIF.js.map → chunk-PNPESCSP.js.map} +1 -1
  94. package/dist/{chunk-LYBFUKHR.js → chunk-RMTHCPIV.js} +4 -4
  95. package/dist/{chunk-LYBFUKHR.js.map → chunk-RMTHCPIV.js.map} +1 -1
  96. package/dist/{chunk-2JJS46FM.js → chunk-TE6NSONR.js} +3 -3
  97. package/dist/{chunk-2JJS46FM.js.map → chunk-TE6NSONR.js.map} +1 -1
  98. package/dist/{chunk-NHLLC6WH.js → chunk-TJCE4TVX.js} +4 -4
  99. package/dist/{chunk-NHLLC6WH.js.map → chunk-TJCE4TVX.js.map} +1 -1
  100. package/dist/chunk-UCNPXHIJ.js +32 -0
  101. package/dist/chunk-UCNPXHIJ.js.map +1 -0
  102. package/dist/{chunk-WCQUQ2WX.js → chunk-V7UJ55KW.js} +47 -5
  103. package/dist/chunk-V7UJ55KW.js.map +1 -0
  104. package/dist/{chunk-IQGRFAQV.js → chunk-VSW3NBJQ.js} +3 -3
  105. package/dist/{chunk-IQGRFAQV.js.map → chunk-VSW3NBJQ.js.map} +1 -1
  106. package/dist/{chunk-6QJFMOIX.js → chunk-VWVQWN2G.js} +3 -3
  107. package/dist/{chunk-6QJFMOIX.js.map → chunk-VWVQWN2G.js.map} +1 -1
  108. package/dist/chunk-XADVBV73.js +30 -0
  109. package/dist/chunk-XADVBV73.js.map +1 -0
  110. package/dist/{chunk-FXLVNCG3.js → chunk-XWHGXSQV.js} +3 -3
  111. package/dist/{chunk-FXLVNCG3.js.map → chunk-XWHGXSQV.js.map} +1 -1
  112. package/dist/{chunk-G32U6YQ5.js → chunk-YD5MPZWY.js} +3 -3
  113. package/dist/{chunk-G32U6YQ5.js.map → chunk-YD5MPZWY.js.map} +1 -1
  114. package/dist/{chunk-US4OLTJ2.js → chunk-YNVMVDFN.js} +3 -3
  115. package/dist/{chunk-US4OLTJ2.js.map → chunk-YNVMVDFN.js.map} +1 -1
  116. package/dist/cnh.d.ts +2 -2
  117. package/dist/cnh.js +4 -4
  118. package/dist/cnpj.d.ts +2 -2
  119. package/dist/cnpj.js +5 -5
  120. package/dist/compare.d.ts +16 -0
  121. package/dist/compare.js +33 -0
  122. package/dist/compare.js.map +1 -0
  123. package/dist/cpf.d.ts +2 -2
  124. package/dist/cpf.js +4 -4
  125. package/dist/data-catalog.d.ts +14 -0
  126. package/dist/data-catalog.js +25 -0
  127. package/dist/data-catalog.js.map +1 -0
  128. package/dist/detect.d.ts +1 -1
  129. package/dist/detect.js +23 -20
  130. package/dist/diff.d.ts +16 -0
  131. package/dist/diff.js +33 -0
  132. package/dist/diff.js.map +1 -0
  133. package/dist/generate.d.ts +24 -3
  134. package/dist/generate.js +37 -27
  135. package/dist/ibge.d.ts +65 -0
  136. package/dist/ibge.js +28174 -0
  137. package/dist/ibge.js.map +1 -0
  138. package/dist/{index-CZLo9YOT.d.ts → index-BEJFgDXj.d.ts} +1 -1
  139. package/dist/index.d.ts +15 -9
  140. package/dist/index.js +61 -49
  141. package/dist/index.js.map +1 -1
  142. package/dist/{inscricao-estadual-produtor-rural-CfWUaggb.d.ts → inscricao-estadual-produtor-rural-BXFVQscj.d.ts} +1 -1
  143. package/dist/inscricao-estadual-produtor-rural.d.ts +2 -2
  144. package/dist/inscricao-estadual-produtor-rural.js +3 -3
  145. package/dist/inscricao-estadual.d.ts +3 -3
  146. package/dist/inscricao-estadual.js +4 -4
  147. package/dist/mask.d.ts +13 -0
  148. package/dist/mask.js +41 -0
  149. package/dist/mask.js.map +1 -0
  150. package/dist/nfe-chave.d.ts +2 -2
  151. package/dist/nfe-chave.js +4 -3
  152. package/dist/pis-pasep.d.ts +2 -2
  153. package/dist/pis-pasep.js +3 -3
  154. package/dist/{pix-ddldLlb7.d.ts → pix-B4habHLG.d.ts} +1 -1
  155. package/dist/pix.d.ts +2 -2
  156. package/dist/pix.js +9 -8
  157. package/dist/placa.d.ts +2 -2
  158. package/dist/placa.js +4 -4
  159. package/dist/renavam.d.ts +2 -2
  160. package/dist/renavam.js +4 -4
  161. package/dist/sanitize.d.ts +2 -2
  162. package/dist/sanitize.js +21 -17
  163. package/dist/telefone.d.ts +34 -3
  164. package/dist/telefone.js +4 -3
  165. package/dist/titulo-eleitor.d.ts +2 -2
  166. package/dist/titulo-eleitor.js +4 -4
  167. package/dist/types-CBIZxgfG.d.ts +28 -0
  168. package/dist/types-MXifBcV5.d.ts +10 -0
  169. package/dist/{validation-result-BhQE-1_O.d.ts → validation-result-BaI2Xder.d.ts} +24 -5
  170. package/package.json +36 -1
  171. package/dist/chunk-4W4OKLSZ.js +0 -366
  172. package/dist/chunk-4W4OKLSZ.js.map +0 -1
  173. package/dist/chunk-5UL3M7IU.js +0 -192
  174. package/dist/chunk-5UL3M7IU.js.map +0 -1
  175. package/dist/chunk-CSZCIOGA.js +0 -187
  176. package/dist/chunk-CSZCIOGA.js.map +0 -1
  177. package/dist/chunk-JZNTCZMV.js.map +0 -1
  178. package/dist/chunk-MSLJF2FM.js.map +0 -1
  179. package/dist/chunk-Q7B5VOPW.js.map +0 -1
  180. package/dist/chunk-WCQUQ2WX.js.map +0 -1
@@ -1,5 +1,6 @@
1
- import { u as TelefoneValidationResult, F as FormatResult } from './validation-result-BhQE-1_O.js';
2
- export { D as DocumentFormat, T as Telefone, t as TelefoneTipo, V as ValidationErrorCode } from './validation-result-BhQE-1_O.js';
1
+ import { u as TelefoneValidationResult, F as FormatResult } from './validation-result-BaI2Xder.js';
2
+ export { D as DocumentFormat, T as Telefone, t as TelefoneTipo, V as ValidationErrorCode } from './validation-result-BaI2Xder.js';
3
+ import { b as DatasetChanges, c as DatasetVerification } from './types-CBIZxgfG.js';
3
4
 
4
5
  /** 67 official Anatel national area codes (CN / DDD). */
5
6
  declare const ANATEL_DDDS: readonly ["11", "12", "13", "14", "15", "16", "17", "18", "19", "21", "22", "24", "27", "28", "31", "32", "33", "34", "35", "37", "38", "41", "42", "43", "44", "45", "46", "47", "48", "49", "51", "53", "54", "55", "61", "62", "64", "63", "65", "66", "67", "68", "69", "71", "73", "74", "75", "77", "79", "81", "87", "82", "83", "84", "85", "88", "86", "89", "91", "93", "94", "92", "97", "95", "96", "98", "99"];
@@ -11,6 +12,36 @@ declare const TELEFONE_GOLDEN_FIXO_MASKED = "(11) 3333-3333";
11
12
  declare const TELEFONE_OFFICIAL_SOURCE_URL = "https://www.gov.br/anatel/pt-br/regulado/numeracao/plano-de-numeracao-brasileiro";
12
13
  declare const TELEFONE_ANATEL_DDD_PANEL_URL = "https://informacoes.anatel.gov.br/paineis/areas-tarifarias/codigos-nacionais";
13
14
 
15
+ interface DddInfo {
16
+ ddd: string;
17
+ uf: string;
18
+ regiao: string;
19
+ municipios: readonly string[];
20
+ }
21
+ interface TelefoneDddDataVersion {
22
+ id: 'telefone-ddd';
23
+ nome: string;
24
+ fonte: string;
25
+ endpoints: string[];
26
+ capturadoEm: string;
27
+ atualizadoEm: string;
28
+ contagens: {
29
+ ddds: number;
30
+ };
31
+ alteracoes: DatasetChanges;
32
+ verificacao: DatasetVerification;
33
+ documentacao: string;
34
+ }
35
+
36
+ /**
37
+ * Anatel DDD geographic lookup — offline embedded data.
38
+ * @see https://informacoes.anatel.gov.br/paineis/areas-tarifarias/codigos-nacionais
39
+ */
40
+
41
+ declare function getDddInfo(ddd: string): DddInfo | undefined;
42
+
43
+ declare const TELEFONE_DDD_DATA_VERSION: TelefoneDddDataVersion;
44
+
14
45
  declare function isValidTelefone(input: string): boolean;
15
46
  declare function validateTelefone(input: string): TelefoneValidationResult;
16
47
 
@@ -26,4 +57,4 @@ declare function stripTelefone(input: string): string;
26
57
 
27
58
  declare function formatTelefone(input: string): FormatResult;
28
59
 
29
- export { ANATEL_DDDS, ANATEL_DDD_SET, FormatResult, TELEFONE_ANATEL_DDD_PANEL_URL, TELEFONE_GOLDEN_CELULAR, TELEFONE_GOLDEN_CELULAR_MASKED, TELEFONE_GOLDEN_FIXO, TELEFONE_GOLDEN_FIXO_MASKED, TELEFONE_OFFICIAL_SOURCE_URL, TelefoneValidationResult, extractTelefoneDigits, formatTelefone, isValidTelefone, normalizeTelefoneDigits, stripTelefone, validateTelefone };
60
+ export { ANATEL_DDDS, ANATEL_DDD_SET, type DddInfo, FormatResult, TELEFONE_ANATEL_DDD_PANEL_URL, TELEFONE_DDD_DATA_VERSION, TELEFONE_GOLDEN_CELULAR, TELEFONE_GOLDEN_CELULAR_MASKED, TELEFONE_GOLDEN_FIXO, TELEFONE_GOLDEN_FIXO_MASKED, TELEFONE_OFFICIAL_SOURCE_URL, type TelefoneDddDataVersion, TelefoneValidationResult, extractTelefoneDigits, formatTelefone, getDddInfo, isValidTelefone, normalizeTelefoneDigits, stripTelefone, validateTelefone };
package/dist/telefone.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import './chunk-ZH4RJNG7.js';
2
- export { formatTelefone } from './chunk-G2Y63PIF.js';
3
- export { ANATEL_DDDS, ANATEL_DDD_SET, TELEFONE_ANATEL_DDD_PANEL_URL, TELEFONE_GOLDEN_CELULAR, TELEFONE_GOLDEN_CELULAR_MASKED, TELEFONE_GOLDEN_FIXO, TELEFONE_GOLDEN_FIXO_MASKED, TELEFONE_OFFICIAL_SOURCE_URL, extractTelefoneDigits, isValidTelefone, normalizeTelefoneDigits, stripTelefone, validateTelefone } from './chunk-5UL3M7IU.js';
4
- import './chunk-MSLJF2FM.js';
2
+ export { formatTelefone } from './chunk-PNPESCSP.js';
3
+ export { ANATEL_DDDS, ANATEL_DDD_SET, TELEFONE_ANATEL_DDD_PANEL_URL, TELEFONE_DDD_DATA_VERSION, TELEFONE_GOLDEN_CELULAR, TELEFONE_GOLDEN_CELULAR_MASKED, TELEFONE_GOLDEN_FIXO, TELEFONE_GOLDEN_FIXO_MASKED, TELEFONE_OFFICIAL_SOURCE_URL, extractTelefoneDigits, getDddInfo, isValidTelefone, normalizeTelefoneDigits, stripTelefone, validateTelefone } from './chunk-EFEE6CMO.js';
4
+ import './chunk-KTEQPYYN.js';
5
+ import './chunk-NUQSMT4Y.js';
5
6
  //# sourceMappingURL=telefone.js.map
6
7
  //# sourceMappingURL=telefone.js.map
@@ -1,5 +1,5 @@
1
- import { U as UfCode, w as TituloEleitorValidationResult, F as FormatResult } from './validation-result-BhQE-1_O.js';
2
- export { D as DocumentFormat, v as TituloEleitor, V as ValidationErrorCode, x as ValidationResult } from './validation-result-BhQE-1_O.js';
1
+ import { U as UfCode, w as TituloEleitorValidationResult, F as FormatResult } from './validation-result-BaI2Xder.js';
2
+ export { D as DocumentFormat, v as TituloEleitor, V as ValidationErrorCode, x as ValidationResult } from './validation-result-BaI2Xder.js';
3
3
 
4
4
  /**
5
5
  * Título de Eleitor constants — modulo 11 (TSE Res. 20.132/1998 + algorithm cross-checks).
@@ -1,11 +1,11 @@
1
1
  import './chunk-7ULDLG4C.js';
2
- export { formatTituloEleitor } from './chunk-KSLDM5AD.js';
3
- export { TITULO_ELEITOR_ALGORITHM_REF_URL, TITULO_ELEITOR_ALGORITHM_WEIGHTS_REF_URL, TITULO_ELEITOR_DV1_WEIGHTS_8, TITULO_ELEITOR_DV1_WEIGHTS_9, TITULO_ELEITOR_DV2_WEIGHTS, TITULO_ELEITOR_ETITULO_URL, TITULO_ELEITOR_EXTERIOR_UF_CODE, TITULO_ELEITOR_GOLDEN_EXTERIOR, TITULO_ELEITOR_GOLDEN_MASKED_INPUT, TITULO_ELEITOR_GOLDEN_PRIMARY, TITULO_ELEITOR_GOLDEN_SP_EXTENDED, TITULO_ELEITOR_GOLDEN_SP_SPECIAL, TITULO_ELEITOR_LENGTH, TITULO_ELEITOR_LENGTH_EXTENDED, TITULO_ELEITOR_NORMATIVE_SECONDARY_URL, TITULO_ELEITOR_NUMERIC_PATTERN_12, TITULO_ELEITOR_NUMERIC_PATTERN_13, TITULO_ELEITOR_OFFICIAL_SOURCE_URL, TITULO_ELEITOR_SEQUENTIAL_LENGTH, TITULO_ELEITOR_SEQUENTIAL_LENGTH_EXTENDED, TITULO_ELEITOR_SPECIAL_UF_CODES, TITULO_ELEITOR_TSE_PORTAL_URL, TITULO_ELEITOR_UF_BY_CODE, isValidTituloEleitor, validateTituloEleitor } from './chunk-DJUANFIK.js';
2
+ export { formatTituloEleitor } from './chunk-EVULAGR5.js';
3
+ export { TITULO_ELEITOR_ALGORITHM_REF_URL, TITULO_ELEITOR_ALGORITHM_WEIGHTS_REF_URL, TITULO_ELEITOR_DV1_WEIGHTS_8, TITULO_ELEITOR_DV1_WEIGHTS_9, TITULO_ELEITOR_DV2_WEIGHTS, TITULO_ELEITOR_ETITULO_URL, TITULO_ELEITOR_EXTERIOR_UF_CODE, TITULO_ELEITOR_GOLDEN_EXTERIOR, TITULO_ELEITOR_GOLDEN_MASKED_INPUT, TITULO_ELEITOR_GOLDEN_PRIMARY, TITULO_ELEITOR_GOLDEN_SP_EXTENDED, TITULO_ELEITOR_GOLDEN_SP_SPECIAL, TITULO_ELEITOR_LENGTH, TITULO_ELEITOR_LENGTH_EXTENDED, TITULO_ELEITOR_NORMATIVE_SECONDARY_URL, TITULO_ELEITOR_NUMERIC_PATTERN_12, TITULO_ELEITOR_NUMERIC_PATTERN_13, TITULO_ELEITOR_OFFICIAL_SOURCE_URL, TITULO_ELEITOR_SEQUENTIAL_LENGTH, TITULO_ELEITOR_SEQUENTIAL_LENGTH_EXTENDED, TITULO_ELEITOR_SPECIAL_UF_CODES, TITULO_ELEITOR_TSE_PORTAL_URL, TITULO_ELEITOR_UF_BY_CODE, isValidTituloEleitor, validateTituloEleitor } from './chunk-CSVGWTCG.js';
4
4
  export { stripTituloEleitor } from './chunk-YYHS5WQN.js';
5
5
  import './chunk-4SNBZFS5.js';
6
- import './chunk-EB3G4IG6.js';
7
6
  import './chunk-UCJPSJN5.js';
8
7
  import './chunk-OTZHMJYE.js';
9
- import './chunk-MSLJF2FM.js';
8
+ import './chunk-EB3G4IG6.js';
9
+ import './chunk-NUQSMT4Y.js';
10
10
  //# sourceMappingURL=titulo-eleitor.js.map
11
11
  //# sourceMappingURL=titulo-eleitor.js.map
@@ -0,0 +1,28 @@
1
+ interface DatasetChanges {
2
+ adicionados: number;
3
+ removidos: number;
4
+ alterados: number;
5
+ comparadoCom: string | null;
6
+ }
7
+ interface DatasetVerification {
8
+ agendamento: 'semanal';
9
+ workflow: 'data-refresh-bot.yml';
10
+ ultimaExecucao?: string;
11
+ }
12
+ interface DatasetMetadata {
13
+ id: string;
14
+ nome: string;
15
+ fonte: string;
16
+ endpoints: string[];
17
+ capturadoEm: string;
18
+ atualizadoEm: string;
19
+ contagens: Record<string, number>;
20
+ alteracoes: DatasetChanges;
21
+ verificacao: DatasetVerification;
22
+ documentacao: string;
23
+ }
24
+ interface DataCatalogVersion {
25
+ totalDatasets: number;
26
+ }
27
+
28
+ export type { DataCatalogVersion as D, DatasetMetadata as a, DatasetChanges as b, DatasetVerification as c };
@@ -0,0 +1,10 @@
1
+ import { U as UfCode } from './validation-result-BaI2Xder.js';
2
+ import { S as SanitizableDocumentType } from './index-BEJFgDXj.js';
3
+
4
+ /** Document types supported by compare, batch, and diff platform APIs. */
5
+ type PlatformDocumentType = SanitizableDocumentType | 'pix' | 'brcode';
6
+ type PlatformOptions = {
7
+ uf?: UfCode;
8
+ };
9
+
10
+ export type { PlatformDocumentType as P, PlatformOptions as a };
@@ -1,7 +1,7 @@
1
- type DocumentFormat = 'numeric' | 'alphanumeric' | 'legacy' | 'mercosul' | 'email' | 'phone' | 'evp' | 'linha-digitavel' | 'codigo-barras' | 'cartao-credito' | 'inscricao-estadual' | 'inscricao-estadual-produtor-rural' | 'telefone' | 'brcode';
1
+ type DocumentFormat = 'numeric' | 'alphanumeric' | 'legacy' | 'mercosul' | 'email' | 'phone' | 'evp' | 'linha-digitavel' | 'codigo-barras' | 'cartao-credito' | 'inscricao-estadual' | 'inscricao-estadual-produtor-rural' | 'telefone' | 'brcode' | 'arrecadacao';
2
2
  type PixKeyType = 'cpf' | 'cnpj' | 'email' | 'phone' | 'evp';
3
3
  type TelefoneTipo = 'celular' | 'fixo';
4
- type BoletoInputKind = 'linha-digitavel' | 'codigo-barras';
4
+ type BoletoInputKind = 'linha-digitavel' | 'codigo-barras' | 'arrecadacao-linha' | 'arrecadacao-codigo-barras';
5
5
  type ValidationErrorCode = 'INVALID_LENGTH' | 'INVALID_CHARACTER' | 'INVALID_CHECK_DIGIT' | 'KNOWN_INVALID_PATTERN' | 'UNSUPPORTED_FORMAT' | 'EMPTY_INPUT';
6
6
  type ValidationResult<T extends string = string> = {
7
7
  ok: true;
@@ -96,12 +96,31 @@ type PixValidationResult = {
96
96
  keyType?: PixKeyType;
97
97
  };
98
98
  type BoletoSituacao = '1' | '2';
99
+ type CobrancaBoletoValidationResult = {
100
+ ok: true;
101
+ value: LinhaDigitavel | CodigoBarras;
102
+ inputKind: 'linha-digitavel' | 'codigo-barras';
103
+ format: 'linha-digitavel' | 'codigo-barras';
104
+ situacao: BoletoSituacao;
105
+ } | {
106
+ ok: false;
107
+ code: ValidationErrorCode;
108
+ message: string;
109
+ inputKind?: BoletoInputKind;
110
+ };
99
111
  type BoletoValidationResult = {
100
112
  ok: true;
101
113
  value: LinhaDigitavel | CodigoBarras;
102
- inputKind: BoletoInputKind;
103
- format: DocumentFormat;
114
+ inputKind: 'linha-digitavel' | 'codigo-barras';
115
+ format: 'linha-digitavel' | 'codigo-barras';
104
116
  situacao: BoletoSituacao;
117
+ } | {
118
+ ok: true;
119
+ value: string;
120
+ inputKind: 'arrecadacao-linha' | 'arrecadacao-codigo-barras';
121
+ format: 'arrecadacao';
122
+ segment: string;
123
+ valueType: '6' | '7' | '8' | '9';
105
124
  } | {
106
125
  ok: false;
107
126
  code: ValidationErrorCode;
@@ -193,4 +212,4 @@ type BrCodeValidationResult = {
193
212
  message: string;
194
213
  };
195
214
 
196
- export type { BoletoInputKind as B, CartaoCredito as C, DocumentFormat as D, FormatResult as F, IeProdutorRuralValidationResult as I, LinhaDigitavel as L, NfeChave as N, PisPasep as P, Renavam as R, Telefone as T, UfCode as U, ValidationErrorCode as V, BoletoSituacao as a, BoletoValidationResult as b, BrCodePayload as c, BrCodeValidationResult as d, CartaoCreditoValidationResult as e, Cep as f, Cnh as g, Cnpj as h, CodigoBarras as i, Cpf as j, InscricaoEstadual as k, InscricaoEstadualProdutorRural as l, InscricaoEstadualValidationResult as m, NfeChaveParsed as n, NfeChaveValidationResult as o, PixKey as p, PixKeyType as q, PixValidationResult as r, Placa as s, TelefoneTipo as t, TelefoneValidationResult as u, TituloEleitor as v, TituloEleitorValidationResult as w, ValidationResult as x };
215
+ export type { BoletoInputKind as B, CartaoCredito as C, DocumentFormat as D, FormatResult as F, IeProdutorRuralValidationResult as I, LinhaDigitavel as L, NfeChave as N, PisPasep as P, Renavam as R, Telefone as T, UfCode as U, ValidationErrorCode as V, BoletoSituacao as a, BoletoValidationResult as b, BrCodePayload as c, BrCodeValidationResult as d, CartaoCreditoValidationResult as e, Cep as f, Cnh as g, Cnpj as h, CodigoBarras as i, Cpf as j, InscricaoEstadual as k, InscricaoEstadualProdutorRural as l, InscricaoEstadualValidationResult as m, NfeChaveParsed as n, NfeChaveValidationResult as o, PixKey as p, PixKeyType as q, PixValidationResult as r, Placa as s, TelefoneTipo as t, TelefoneValidationResult as u, TituloEleitor as v, TituloEleitorValidationResult as w, ValidationResult as x, CobrancaBoletoValidationResult as y };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@br-validators/core",
3
- "version": "0.12.0-alpha.3",
3
+ "version": "1.1.0",
4
4
  "description": "The Brazilian document validation library for TypeScript — CPF, CNPJ (alphanumeric), NF-e, PIX, boleto, IE (27 UFs), and 15+ more. Zero deps, fully typed, never throws.",
5
5
  "homepage": "https://www.npmjs.com/package/@br-validators/core",
6
6
  "license": "MIT",
@@ -34,6 +34,13 @@
34
34
  "detect",
35
35
  "sanitize",
36
36
  "generate",
37
+ "mask",
38
+ "compare",
39
+ "batch",
40
+ "diff",
41
+ "ibge",
42
+ "bancos",
43
+ "data-catalog",
37
44
  "typescript"
38
45
  ],
39
46
  "publishConfig": {
@@ -122,6 +129,34 @@
122
129
  "./generate": {
123
130
  "types": "./dist/generate.d.ts",
124
131
  "import": "./dist/generate.js"
132
+ },
133
+ "./mask": {
134
+ "types": "./dist/mask.d.ts",
135
+ "import": "./dist/mask.js"
136
+ },
137
+ "./compare": {
138
+ "types": "./dist/compare.d.ts",
139
+ "import": "./dist/compare.js"
140
+ },
141
+ "./batch": {
142
+ "types": "./dist/batch.d.ts",
143
+ "import": "./dist/batch.js"
144
+ },
145
+ "./diff": {
146
+ "types": "./dist/diff.d.ts",
147
+ "import": "./dist/diff.js"
148
+ },
149
+ "./ibge": {
150
+ "types": "./dist/ibge.d.ts",
151
+ "import": "./dist/ibge.js"
152
+ },
153
+ "./bancos": {
154
+ "types": "./dist/bancos.d.ts",
155
+ "import": "./dist/bancos.js"
156
+ },
157
+ "./data-catalog": {
158
+ "types": "./dist/data-catalog.d.ts",
159
+ "import": "./dist/data-catalog.js"
125
160
  }
126
161
  },
127
162
  "files": [
@@ -1,366 +0,0 @@
1
- import { brandCodigoBarras, brandLinhaDigitavel } from './chunk-MSLJF2FM.js';
2
-
3
- // src/core/boleto/constants.ts
4
- var BOLETO_LINHA_LENGTH = 47;
5
- var BOLETO_CODIGO_BARRAS_LENGTH = 44;
6
- var BOLETO_CURRENCY_REAL = "9";
7
- var BOLETO_CODE_ISPB_HOLDER = "988";
8
- var BOLETO_CURRENCY_ISPB = "0";
9
- var BOLETO_GOLDEN_LINHA_MASKED = "03399.02579 08991.834006 71742.301014 6 14500000099668";
10
- var BOLETO_GOLDEN_LINHA_STRIPPED = "03399025790899183400671742301014614500000099668";
11
- var BOLETO_GOLDEN_CODIGO_BARRAS = "03396145000000996689025708991834007174230101";
12
- var BOLETO_GOLDEN_LINHA_BB_STRIPPED = "00191234546789012345767890123457112340000001500";
13
- var BOLETO_GOLDEN_CODIGO_BARRAS_BB = "00191123400000015001234567890123456789012345";
14
- var BOLETO_GOLDEN_LINHA_SITUACAO2_STRIPPED = "98801234516789012345767890123457760746948000112";
15
- var BOLETO_GOLDEN_CODIGO_BARRAS_SITUACAO2 = "98807607469480001121234567890123456789012345";
16
- var BOLETO_OFFICIAL_SOURCE_URL = "https://cmsarquivos.febraban.org.br/Arquivos/documentos/PDF/Conven%C3%A7%C3%A3o%20da%20Cobran%C3%A7a%20-%2005_02_2021_f.pdf";
17
- var BOLETO_LAYOUTS_PORTAL_URL = "https://portal.febraban.org.br/pagina/3425/33/pt-br/layout-febraban";
18
-
19
- // src/core/boleto/detect-situacao.ts
20
- function toBoletoSituacaoCode(kind) {
21
- if (kind === "situacao-1") {
22
- return "1";
23
- }
24
- if (kind === "situacao-2") {
25
- return "2";
26
- }
27
- return void 0;
28
- }
29
- function detectBoletoSituacao(stripped) {
30
- if (stripped.length !== BOLETO_LINHA_LENGTH && stripped.length !== BOLETO_CODIGO_BARRAS_LENGTH) {
31
- return "unknown";
32
- }
33
- if (stripped.slice(0, 3) === BOLETO_CODE_ISPB_HOLDER) {
34
- if (stripped.charAt(3) === BOLETO_CURRENCY_ISPB) {
35
- return "situacao-2";
36
- }
37
- return "unknown";
38
- }
39
- if (stripped.charAt(3) === BOLETO_CURRENCY_REAL) {
40
- return "situacao-1";
41
- }
42
- return "unknown";
43
- }
44
-
45
- // src/core/boleto/modulo11.ts
46
- function computeModulo11BarcodeDv(barcodeWithoutDv) {
47
- let multiplier = 2;
48
- let sum = 0;
49
- for (let i = barcodeWithoutDv.length - 1; i >= 0; i--) {
50
- sum += Number(barcodeWithoutDv[i]) * multiplier;
51
- multiplier = multiplier >= 9 ? 2 : multiplier + 1;
52
- }
53
- const remainder = sum % 11;
54
- let dv = 11 - remainder;
55
- if (dv === 0 || dv === 10 || dv === 11) {
56
- dv = 1;
57
- }
58
- return dv;
59
- }
60
-
61
- // src/core/boleto/codigo-barras.ts
62
- function failure(code, message) {
63
- return { ok: false, code, message, inputKind: "codigo-barras" };
64
- }
65
- function stripCodigoBarras(input) {
66
- return input.replace(/\D/g, "");
67
- }
68
- function validateCodigoBarras(input) {
69
- const trimmed = input.trim();
70
- if (trimmed.length === 0) {
71
- return { ok: false, code: "EMPTY_INPUT", message: "C\xF3digo de barras input is empty" };
72
- }
73
- if (/[^0-9]/.test(trimmed)) {
74
- return failure("INVALID_CHARACTER", "C\xF3digo de barras contains invalid characters");
75
- }
76
- if (trimmed.length !== BOLETO_CODIGO_BARRAS_LENGTH) {
77
- return failure("INVALID_LENGTH", `C\xF3digo de barras must have ${BOLETO_CODIGO_BARRAS_LENGTH} digits`);
78
- }
79
- const situacaoKind = detectBoletoSituacao(trimmed);
80
- if (situacaoKind === "unknown") {
81
- const isIspbHolder = trimmed.slice(0, 3) === BOLETO_CODE_ISPB_HOLDER;
82
- const message = isIspbHolder ? "ISPB holder boleto (code 988) requires currency indicator 0 (Situa\xE7\xE3o 2)" : "Bank boleto currency code must be 9 (Real) for Situa\xE7\xE3o 1";
83
- return failure("UNSUPPORTED_FORMAT", message);
84
- }
85
- if (trimmed.charAt(4) === "0") {
86
- return failure("INVALID_CHECK_DIGIT", "Barcode DV cannot be 0");
87
- }
88
- const expectedDv = String(computeModulo11BarcodeDv(trimmed.slice(0, 4) + trimmed.slice(5)));
89
- if (trimmed.charAt(4) !== expectedDv) {
90
- return failure("INVALID_CHECK_DIGIT", "C\xF3digo de barras check digit is invalid");
91
- }
92
- const situacao = toBoletoSituacaoCode(situacaoKind);
93
- return {
94
- ok: true,
95
- value: brandCodigoBarras(trimmed),
96
- inputKind: "codigo-barras",
97
- format: "codigo-barras",
98
- situacao
99
- };
100
- }
101
-
102
- // src/core/boleto/modulo10.ts
103
- function computeModulo10FieldDv(digits) {
104
- let multiplier = 2;
105
- let sum = 0;
106
- for (let i = digits.length - 1; i >= 0; i--) {
107
- let product = Number(digits[i]) * multiplier;
108
- if (product > 9) {
109
- product = Math.floor(product / 10) + product % 10;
110
- }
111
- sum += product;
112
- multiplier = multiplier === 2 ? 1 : 2;
113
- }
114
- const remainder = sum % 10;
115
- return remainder === 0 ? 0 : 10 - remainder;
116
- }
117
-
118
- // src/core/boleto/convert.ts
119
- function convertLinhaToCodigoBarrasDigits(strippedLinha) {
120
- return strippedLinha.slice(0, 4) + strippedLinha[32] + strippedLinha.slice(33, BOLETO_LINHA_LENGTH) + strippedLinha.slice(4, 9) + strippedLinha.slice(10, 20) + strippedLinha.slice(21, 31);
121
- }
122
- function convertCodigoBarrasToLinhaDigits(barcode) {
123
- const field1 = barcode.slice(0, 4) + barcode.slice(19, 24);
124
- const field2 = barcode.slice(24, 34);
125
- const field3 = barcode.slice(34, BOLETO_CODIGO_BARRAS_LENGTH);
126
- const field5 = barcode.slice(5, 9) + barcode.slice(9, 19);
127
- const dv1 = String(computeModulo10FieldDv(field1));
128
- const dv2 = String(computeModulo10FieldDv(field2));
129
- const dv3 = String(computeModulo10FieldDv(field3));
130
- return field1 + dv1 + field2 + dv2 + field3 + dv3 + barcode[4] + field5;
131
- }
132
-
133
- // src/core/boleto/detect.ts
134
- var LINHA_MASK_PATTERN = /^[0-9.\s]+$/;
135
- function stripDigits(input) {
136
- return input.replace(/\D/g, "");
137
- }
138
- function detectBoletoInputKind(input) {
139
- const trimmed = input.trim();
140
- if (trimmed.length === 0) {
141
- return "unknown";
142
- }
143
- const digits = stripDigits(trimmed);
144
- if (digits.length === 48 && digits.startsWith("8")) {
145
- return "arrecadacao";
146
- }
147
- if (digits.length === BOLETO_CODIGO_BARRAS_LENGTH && /^\d+$/.test(digits)) {
148
- return "codigo-barras";
149
- }
150
- if (digits.length === BOLETO_LINHA_LENGTH) {
151
- if (/^\d+$/.test(trimmed)) {
152
- return "linha-digitavel";
153
- }
154
- if (LINHA_MASK_PATTERN.test(trimmed)) {
155
- return "linha-digitavel";
156
- }
157
- return "unknown";
158
- }
159
- return "unknown";
160
- }
161
-
162
- // src/core/boleto/mask.ts
163
- function applyLinhaDigitavelMask(stripped47) {
164
- if (stripped47.length !== BOLETO_LINHA_LENGTH) {
165
- throw new Error(`Linha digit\xE1vel must have exactly ${BOLETO_LINHA_LENGTH} digits to apply mask`);
166
- }
167
- return `${stripped47.slice(0, 5)}.${stripped47.slice(5, 10)} ${stripped47.slice(10, 15)}.${stripped47.slice(15, 21)} ${stripped47.slice(21, 26)}.${stripped47.slice(26, 32)} ${stripped47[32]} ${stripped47.slice(33)}`;
168
- }
169
- function formatLinhaDigitavel(stripped) {
170
- return applyLinhaDigitavelMask(stripped);
171
- }
172
-
173
- // src/core/boleto/linha-digitavel.ts
174
- var LINHA_MASK_PATTERN2 = /^[0-9.\s]+$/;
175
- function failure2(code, message) {
176
- return { ok: false, code, message, inputKind: "linha-digitavel" };
177
- }
178
- function stripLinhaDigitavel(input) {
179
- return input.replace(/\D/g, "");
180
- }
181
- function validateFieldDv(fieldDigits, actualDv, fieldNumber) {
182
- const expected = String(computeModulo10FieldDv(fieldDigits));
183
- if (actualDv !== expected) {
184
- return failure2("INVALID_CHECK_DIGIT", `Linha digit\xE1vel field ${fieldNumber} check digit is invalid`);
185
- }
186
- return null;
187
- }
188
- function validateLinhaDigitavel(input) {
189
- const trimmed = input.trim();
190
- if (trimmed.length === 0) {
191
- return { ok: false, code: "EMPTY_INPUT", message: "Linha digit\xE1vel input is empty" };
192
- }
193
- if (!LINHA_MASK_PATTERN2.test(trimmed)) {
194
- return failure2("INVALID_CHARACTER", "Linha digit\xE1vel contains invalid characters");
195
- }
196
- const stripped = stripLinhaDigitavel(trimmed);
197
- if (stripped.length !== BOLETO_LINHA_LENGTH) {
198
- return failure2("INVALID_LENGTH", `Linha digit\xE1vel must have ${BOLETO_LINHA_LENGTH} digits after normalization`);
199
- }
200
- const situacaoKind = detectBoletoSituacao(stripped);
201
- if (situacaoKind === "unknown") {
202
- const isIspbHolder = stripped.slice(0, 3) === BOLETO_CODE_ISPB_HOLDER;
203
- const message = isIspbHolder ? "ISPB holder boleto (code 988) requires currency indicator 0 (Situa\xE7\xE3o 2)" : "Bank boleto currency code must be 9 (Real) for Situa\xE7\xE3o 1";
204
- return failure2("UNSUPPORTED_FORMAT", message);
205
- }
206
- const field1Error = validateFieldDv(stripped.slice(0, 9), stripped.charAt(9), 1);
207
- if (field1Error) {
208
- return field1Error;
209
- }
210
- const field2Error = validateFieldDv(stripped.slice(10, 20), stripped.charAt(20), 2);
211
- if (field2Error) {
212
- return field2Error;
213
- }
214
- const field3Error = validateFieldDv(stripped.slice(21, 31), stripped.charAt(31), 3);
215
- if (field3Error) {
216
- return field3Error;
217
- }
218
- const barcode = convertLinhaToCodigoBarrasDigits(stripped);
219
- const barcodeDvFromMod11 = String(
220
- computeModulo11BarcodeDv(barcode.slice(0, 4) + barcode.slice(5))
221
- );
222
- if (stripped.charAt(32) !== barcodeDvFromMod11) {
223
- return failure2("INVALID_CHECK_DIGIT", "Linha digit\xE1vel field 4 (barcode DV) is invalid");
224
- }
225
- const situacao = toBoletoSituacaoCode(situacaoKind);
226
- return {
227
- ok: true,
228
- value: brandLinhaDigitavel(stripped),
229
- inputKind: "linha-digitavel",
230
- format: "linha-digitavel",
231
- situacao
232
- };
233
- }
234
-
235
- // src/core/boleto/fator-vencimento.ts
236
- var FATOR_MIN = 1;
237
- var FATOR_SEMANTIC_MAX = 9997;
238
- function validateFatorVencimento(factor) {
239
- if (!/^\d{4}$/.test(factor)) {
240
- return {
241
- ok: false,
242
- code: "INVALID_LENGTH",
243
- message: "Due-date factor must have exactly 4 digits"
244
- };
245
- }
246
- if (factor === "0000") {
247
- return { ok: true, factor, hasDueDate: false };
248
- }
249
- const days = Number(factor);
250
- if (days < FATOR_MIN || days > FATOR_SEMANTIC_MAX) {
251
- return {
252
- ok: false,
253
- code: "UNSUPPORTED_FORMAT",
254
- message: "Due-date factor is out of the supported range"
255
- };
256
- }
257
- return { ok: true, factor, hasDueDate: true };
258
- }
259
-
260
- // src/core/boleto/valor-documento.ts
261
- function validateValorDocumento(value) {
262
- if (!/^\d{10}$/.test(value)) {
263
- return {
264
- ok: false,
265
- code: "INVALID_LENGTH",
266
- message: "Document amount must have exactly 10 digits (centavos)"
267
- };
268
- }
269
- return { ok: true, amountCents: Number(value) };
270
- }
271
-
272
- // src/core/boleto/semantic.ts
273
- function failure3(code, message, inputKind) {
274
- return { ok: false, code, message, inputKind };
275
- }
276
- function validateSemanticFields(barcode, options, inputKind) {
277
- if (detectBoletoSituacao(barcode) !== "situacao-1") {
278
- return null;
279
- }
280
- if (options.validateDueFactor) {
281
- const factorResult = validateFatorVencimento(barcode.slice(5, 9));
282
- if (!factorResult.ok) {
283
- return failure3(factorResult.code, factorResult.message, inputKind);
284
- }
285
- }
286
- if (options.validateAmount && detectBoletoSituacao(barcode) === "situacao-1") {
287
- validateValorDocumento(barcode.slice(9, 19));
288
- }
289
- return null;
290
- }
291
-
292
- // src/core/boleto/index.ts
293
- function failure4(code, message, inputKind) {
294
- return { ok: false, code, message, ...inputKind ? { inputKind } : {} };
295
- }
296
- function validateByKind(input, kind, options) {
297
- const result = kind === "linha-digitavel" ? validateLinhaDigitavel(input) : validateCodigoBarras(input);
298
- if (!result.ok) {
299
- return result;
300
- }
301
- const barcode = kind === "linha-digitavel" ? convertLinhaToCodigoBarrasDigits(result.value) : result.value;
302
- const semanticError = validateSemanticFields(barcode, options ?? {}, kind);
303
- if (semanticError) {
304
- return semanticError;
305
- }
306
- return result;
307
- }
308
- function isValidBoleto(input, options) {
309
- return validateBoleto(input, options).ok;
310
- }
311
- function validateBoleto(input, options) {
312
- const trimmed = input.trim();
313
- if (trimmed.length === 0) {
314
- return failure4("EMPTY_INPUT", "Boleto input is empty");
315
- }
316
- const detected = detectBoletoInputKind(trimmed);
317
- if (detected === "arrecadacao") {
318
- return failure4("UNSUPPORTED_FORMAT", "48-digit arrecada\xE7\xE3o slips are not supported");
319
- }
320
- if (options?.kind !== void 0) {
321
- if (detected !== "unknown" && detected !== options.kind) {
322
- return failure4(
323
- "UNSUPPORTED_FORMAT",
324
- `Boleto detected as ${detected} but forced kind is ${options.kind}`,
325
- options.kind
326
- );
327
- }
328
- return validateByKind(trimmed, options.kind, options);
329
- }
330
- if (detected === "unknown") {
331
- return failure4("UNSUPPORTED_FORMAT", "Boleto input kind could not be determined");
332
- }
333
- return validateByKind(trimmed, detected, options);
334
- }
335
- function convertLinhaToCodigoBarras(input) {
336
- const result = validateLinhaDigitavel(input);
337
- if (!result.ok) {
338
- return result;
339
- }
340
- const barcode = convertLinhaToCodigoBarrasDigits(result.value);
341
- return {
342
- ok: true,
343
- value: brandCodigoBarras(barcode),
344
- inputKind: "codigo-barras",
345
- format: "codigo-barras",
346
- situacao: result.situacao
347
- };
348
- }
349
- function convertCodigoBarrasToLinhaDigitavel(input) {
350
- const result = validateCodigoBarras(input);
351
- if (!result.ok) {
352
- return result;
353
- }
354
- const linha = convertCodigoBarrasToLinhaDigits(result.value);
355
- return {
356
- ok: true,
357
- value: brandLinhaDigitavel(linha),
358
- inputKind: "linha-digitavel",
359
- format: "linha-digitavel",
360
- situacao: result.situacao
361
- };
362
- }
363
-
364
- export { BOLETO_CODE_ISPB_HOLDER, BOLETO_CODIGO_BARRAS_LENGTH, BOLETO_CURRENCY_ISPB, BOLETO_CURRENCY_REAL, BOLETO_GOLDEN_CODIGO_BARRAS, BOLETO_GOLDEN_CODIGO_BARRAS_BB, BOLETO_GOLDEN_CODIGO_BARRAS_SITUACAO2, BOLETO_GOLDEN_LINHA_BB_STRIPPED, BOLETO_GOLDEN_LINHA_MASKED, BOLETO_GOLDEN_LINHA_SITUACAO2_STRIPPED, BOLETO_GOLDEN_LINHA_STRIPPED, BOLETO_LAYOUTS_PORTAL_URL, BOLETO_LINHA_LENGTH, BOLETO_OFFICIAL_SOURCE_URL, applyLinhaDigitavelMask, computeModulo10FieldDv, computeModulo11BarcodeDv, convertCodigoBarrasToLinhaDigitavel, convertCodigoBarrasToLinhaDigits, convertLinhaToCodigoBarras, convertLinhaToCodigoBarrasDigits, detectBoletoInputKind, detectBoletoSituacao, formatLinhaDigitavel, isValidBoleto, stripCodigoBarras, stripLinhaDigitavel, validateBoleto, validateCodigoBarras, validateFatorVencimento, validateLinhaDigitavel, validateValorDocumento };
365
- //# sourceMappingURL=chunk-4W4OKLSZ.js.map
366
- //# sourceMappingURL=chunk-4W4OKLSZ.js.map