@br-validators/core 0.12.0-alpha.3 → 1.0.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 (162) hide show
  1. package/README.md +83 -12
  2. package/dist/batch.d.ts +28 -0
  3. package/dist/batch.js +29 -0
  4. package/dist/batch.js.map +1 -0
  5. package/dist/boleto.d.ts +58 -5
  6. package/dist/boleto.js +6 -3
  7. package/dist/brcode.d.ts +15 -3
  8. package/dist/brcode.js +8 -8
  9. package/dist/cartao-credito.d.ts +2 -2
  10. package/dist/cartao-credito.js +3 -3
  11. package/dist/cep.d.ts +2 -2
  12. package/dist/cep.js +4 -4
  13. package/dist/{chunk-WPL47PWJ.js → chunk-3LMDBXU6.js} +3 -3
  14. package/dist/{chunk-WPL47PWJ.js.map → chunk-3LMDBXU6.js.map} +1 -1
  15. package/dist/chunk-4J5IMD7B.js +3 -0
  16. package/dist/chunk-4J5IMD7B.js.map +1 -0
  17. package/dist/{chunk-BFZPCEYB.js → chunk-54UWHK5L.js} +3 -3
  18. package/dist/{chunk-BFZPCEYB.js.map → chunk-54UWHK5L.js.map} +1 -1
  19. package/dist/{chunk-F6PTZY4O.js → chunk-63G7QO73.js} +3 -3
  20. package/dist/{chunk-F6PTZY4O.js.map → chunk-63G7QO73.js.map} +1 -1
  21. package/dist/{chunk-3QP6R46N.js → chunk-665E36SC.js} +4 -4
  22. package/dist/{chunk-3QP6R46N.js.map → chunk-665E36SC.js.map} +1 -1
  23. package/dist/{chunk-AK5GVYQ5.js → chunk-ANWQBKGN.js} +3 -3
  24. package/dist/{chunk-AK5GVYQ5.js.map → chunk-ANWQBKGN.js.map} +1 -1
  25. package/dist/{chunk-D36RM7OD.js → chunk-AO6UTQ4A.js} +3 -3
  26. package/dist/{chunk-D36RM7OD.js.map → chunk-AO6UTQ4A.js.map} +1 -1
  27. package/dist/chunk-AU6TW3GH.js +136 -0
  28. package/dist/chunk-AU6TW3GH.js.map +1 -0
  29. package/dist/{chunk-XW5G2RAL.js → chunk-B6A7VF4R.js} +3 -3
  30. package/dist/{chunk-XW5G2RAL.js.map → chunk-B6A7VF4R.js.map} +1 -1
  31. package/dist/chunk-BFMRXXFE.js +99 -0
  32. package/dist/chunk-BFMRXXFE.js.map +1 -0
  33. package/dist/{chunk-Y6IW2LMW.js → chunk-CDNOUZEI.js} +3 -3
  34. package/dist/{chunk-Y6IW2LMW.js.map → chunk-CDNOUZEI.js.map} +1 -1
  35. package/dist/{chunk-XUO7FV6Z.js → chunk-CSRBRKXY.js} +3 -3
  36. package/dist/{chunk-XUO7FV6Z.js.map → chunk-CSRBRKXY.js.map} +1 -1
  37. package/dist/{chunk-DJUANFIK.js → chunk-CSVGWTCG.js} +3 -3
  38. package/dist/{chunk-DJUANFIK.js.map → chunk-CSVGWTCG.js.map} +1 -1
  39. package/dist/{chunk-5UL3M7IU.js → chunk-DAR6VOMT.js} +3 -3
  40. package/dist/{chunk-5UL3M7IU.js.map → chunk-DAR6VOMT.js.map} +1 -1
  41. package/dist/chunk-E2EFGMWA.js +200 -0
  42. package/dist/chunk-E2EFGMWA.js.map +1 -0
  43. package/dist/{chunk-KSLDM5AD.js → chunk-EVULAGR5.js} +3 -3
  44. package/dist/{chunk-KSLDM5AD.js.map → chunk-EVULAGR5.js.map} +1 -1
  45. package/dist/{chunk-YXELVV37.js → chunk-FBARVLLP.js} +4 -4
  46. package/dist/{chunk-YXELVV37.js.map → chunk-FBARVLLP.js.map} +1 -1
  47. package/dist/chunk-FKFRB3RJ.js +135 -0
  48. package/dist/chunk-FKFRB3RJ.js.map +1 -0
  49. package/dist/chunk-G6OBZRZM.js +131 -0
  50. package/dist/chunk-G6OBZRZM.js.map +1 -0
  51. package/dist/{chunk-MK7OJUF5.js → chunk-H3MLGGFI.js} +8 -8
  52. package/dist/{chunk-MK7OJUF5.js.map → chunk-H3MLGGFI.js.map} +1 -1
  53. package/dist/chunk-HUIMOB5E.js +41 -0
  54. package/dist/chunk-HUIMOB5E.js.map +1 -0
  55. package/dist/{chunk-WLE2ENQA.js → chunk-I66ZRSEN.js} +3 -3
  56. package/dist/{chunk-WLE2ENQA.js.map → chunk-I66ZRSEN.js.map} +1 -1
  57. package/dist/{chunk-Q7B5VOPW.js → chunk-I7DM47IR.js} +243 -37
  58. package/dist/chunk-I7DM47IR.js.map +1 -0
  59. package/dist/{chunk-GRDUTHNX.js → chunk-IYOPXJLY.js} +3 -3
  60. package/dist/{chunk-GRDUTHNX.js.map → chunk-IYOPXJLY.js.map} +1 -1
  61. package/dist/{chunk-4Y2FBO57.js → chunk-JKDU7QYP.js} +3 -3
  62. package/dist/{chunk-4Y2FBO57.js.map → chunk-JKDU7QYP.js.map} +1 -1
  63. package/dist/{chunk-KH7DWOUA.js → chunk-JLCQ7MGC.js} +3 -3
  64. package/dist/{chunk-KH7DWOUA.js.map → chunk-JLCQ7MGC.js.map} +1 -1
  65. package/dist/chunk-KBNWI6GE.js +3 -0
  66. package/dist/chunk-KBNWI6GE.js.map +1 -0
  67. package/dist/chunk-KLPONHBL.js +3 -0
  68. package/dist/chunk-KLPONHBL.js.map +1 -0
  69. package/dist/{chunk-CDGRHI7W.js → chunk-LAEUXOF6.js} +3 -3
  70. package/dist/{chunk-CDGRHI7W.js.map → chunk-LAEUXOF6.js.map} +1 -1
  71. package/dist/{chunk-ZAUZRIOU.js → chunk-MESOO5GZ.js} +3 -3
  72. package/dist/{chunk-ZAUZRIOU.js.map → chunk-MESOO5GZ.js.map} +1 -1
  73. package/dist/chunk-N2WVO3GF.js +128 -0
  74. package/dist/chunk-N2WVO3GF.js.map +1 -0
  75. package/dist/chunk-N6N5ATLY.js +93 -0
  76. package/dist/chunk-N6N5ATLY.js.map +1 -0
  77. package/dist/chunk-N6RQICAP.js +220 -0
  78. package/dist/chunk-N6RQICAP.js.map +1 -0
  79. package/dist/{chunk-MSLJF2FM.js → chunk-NUQSMT4Y.js} +2 -2
  80. package/dist/chunk-NUQSMT4Y.js.map +1 -0
  81. package/dist/{chunk-KQDLIGSG.js → chunk-P2KNN6ZR.js} +3 -3
  82. package/dist/{chunk-KQDLIGSG.js.map → chunk-P2KNN6ZR.js.map} +1 -1
  83. package/dist/{chunk-G2Y63PIF.js → chunk-PD7ZTWMM.js} +3 -3
  84. package/dist/{chunk-G2Y63PIF.js.map → chunk-PD7ZTWMM.js.map} +1 -1
  85. package/dist/{chunk-LYBFUKHR.js → chunk-RMTHCPIV.js} +4 -4
  86. package/dist/{chunk-LYBFUKHR.js.map → chunk-RMTHCPIV.js.map} +1 -1
  87. package/dist/chunk-SAZA3V2U.js +100 -0
  88. package/dist/chunk-SAZA3V2U.js.map +1 -0
  89. package/dist/{chunk-2JJS46FM.js → chunk-TE6NSONR.js} +3 -3
  90. package/dist/{chunk-2JJS46FM.js.map → chunk-TE6NSONR.js.map} +1 -1
  91. package/dist/{chunk-NHLLC6WH.js → chunk-TJCE4TVX.js} +4 -4
  92. package/dist/{chunk-NHLLC6WH.js.map → chunk-TJCE4TVX.js.map} +1 -1
  93. package/dist/{chunk-WCQUQ2WX.js → chunk-V7UJ55KW.js} +47 -5
  94. package/dist/chunk-V7UJ55KW.js.map +1 -0
  95. package/dist/{chunk-IQGRFAQV.js → chunk-VSW3NBJQ.js} +3 -3
  96. package/dist/{chunk-IQGRFAQV.js.map → chunk-VSW3NBJQ.js.map} +1 -1
  97. package/dist/{chunk-6QJFMOIX.js → chunk-VWVQWN2G.js} +3 -3
  98. package/dist/{chunk-6QJFMOIX.js.map → chunk-VWVQWN2G.js.map} +1 -1
  99. package/dist/{chunk-JZNTCZMV.js → chunk-WC6YYFWP.js} +34 -18
  100. package/dist/chunk-WC6YYFWP.js.map +1 -0
  101. package/dist/{chunk-FXLVNCG3.js → chunk-XWHGXSQV.js} +3 -3
  102. package/dist/{chunk-FXLVNCG3.js.map → chunk-XWHGXSQV.js.map} +1 -1
  103. package/dist/{chunk-G32U6YQ5.js → chunk-YD5MPZWY.js} +3 -3
  104. package/dist/{chunk-G32U6YQ5.js.map → chunk-YD5MPZWY.js.map} +1 -1
  105. package/dist/{chunk-US4OLTJ2.js → chunk-YNVMVDFN.js} +3 -3
  106. package/dist/{chunk-US4OLTJ2.js.map → chunk-YNVMVDFN.js.map} +1 -1
  107. package/dist/cnh.d.ts +2 -2
  108. package/dist/cnh.js +4 -4
  109. package/dist/cnpj.d.ts +2 -2
  110. package/dist/cnpj.js +5 -5
  111. package/dist/compare.d.ts +16 -0
  112. package/dist/compare.js +32 -0
  113. package/dist/compare.js.map +1 -0
  114. package/dist/cpf.d.ts +2 -2
  115. package/dist/cpf.js +4 -4
  116. package/dist/detect.d.ts +1 -1
  117. package/dist/detect.js +22 -20
  118. package/dist/diff.d.ts +16 -0
  119. package/dist/diff.js +32 -0
  120. package/dist/diff.js.map +1 -0
  121. package/dist/generate.d.ts +24 -3
  122. package/dist/generate.js +36 -27
  123. package/dist/{index-CZLo9YOT.d.ts → index-BEJFgDXj.d.ts} +1 -1
  124. package/dist/index.d.ts +13 -8
  125. package/dist/index.js +60 -49
  126. package/dist/index.js.map +1 -1
  127. package/dist/{inscricao-estadual-produtor-rural-CfWUaggb.d.ts → inscricao-estadual-produtor-rural-BXFVQscj.d.ts} +1 -1
  128. package/dist/inscricao-estadual-produtor-rural.d.ts +2 -2
  129. package/dist/inscricao-estadual-produtor-rural.js +3 -3
  130. package/dist/inscricao-estadual.d.ts +3 -3
  131. package/dist/inscricao-estadual.js +4 -4
  132. package/dist/mask.d.ts +13 -0
  133. package/dist/mask.js +40 -0
  134. package/dist/mask.js.map +1 -0
  135. package/dist/nfe-chave.d.ts +2 -2
  136. package/dist/nfe-chave.js +4 -3
  137. package/dist/pis-pasep.d.ts +2 -2
  138. package/dist/pis-pasep.js +3 -3
  139. package/dist/{pix-ddldLlb7.d.ts → pix-B4habHLG.d.ts} +1 -1
  140. package/dist/pix.d.ts +2 -2
  141. package/dist/pix.js +9 -8
  142. package/dist/placa.d.ts +2 -2
  143. package/dist/placa.js +4 -4
  144. package/dist/renavam.d.ts +2 -2
  145. package/dist/renavam.js +4 -4
  146. package/dist/sanitize.d.ts +2 -2
  147. package/dist/sanitize.js +20 -17
  148. package/dist/telefone.d.ts +2 -2
  149. package/dist/telefone.js +3 -3
  150. package/dist/titulo-eleitor.d.ts +2 -2
  151. package/dist/titulo-eleitor.js +4 -4
  152. package/dist/types-MXifBcV5.d.ts +10 -0
  153. package/dist/{validation-result-BhQE-1_O.d.ts → validation-result-BaI2Xder.d.ts} +24 -5
  154. package/package.json +21 -1
  155. package/dist/chunk-4W4OKLSZ.js +0 -366
  156. package/dist/chunk-4W4OKLSZ.js.map +0 -1
  157. package/dist/chunk-CSZCIOGA.js +0 -187
  158. package/dist/chunk-CSZCIOGA.js.map +0 -1
  159. package/dist/chunk-JZNTCZMV.js.map +0 -1
  160. package/dist/chunk-MSLJF2FM.js.map +0 -1
  161. package/dist/chunk-Q7B5VOPW.js.map +0 -1
  162. package/dist/chunk-WCQUQ2WX.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { detectBoletoInputKind, validateLinhaDigitavel, applyLinhaDigitavelMask } from './chunk-4W4OKLSZ.js';
1
+ import { detectBoletoInputKind, validateLinhaDigitavel, applyLinhaDigitavelMask } from './chunk-E2EFGMWA.js';
2
2
 
3
3
  // src/format/boleto.ts
4
4
  function formatBoleto(input) {
@@ -22,5 +22,5 @@ function formatBoleto(input) {
22
22
  }
23
23
 
24
24
  export { formatBoleto };
25
- //# sourceMappingURL=chunk-FXLVNCG3.js.map
26
- //# sourceMappingURL=chunk-FXLVNCG3.js.map
25
+ //# sourceMappingURL=chunk-XWHGXSQV.js.map
26
+ //# sourceMappingURL=chunk-XWHGXSQV.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/format/boleto.ts"],"names":[],"mappings":";;;AAUO,SAAS,aAAa,KAAA,EAA6B;AACxD,EAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAC3B,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,IAAA,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,IAAA,EAAM,aAAA,EAAe,SAAS,uBAAA,EAAwB;AAAA,EAC5E;AAEA,EAAA,MAAM,IAAA,GAAO,sBAAsB,OAAO,CAAA;AAC1C,EAAA,IAAI,SAAS,eAAA,EAAiB;AAC5B,IAAA,OAAO;AAAA,MACL,EAAA,EAAI,KAAA;AAAA,MACJ,IAAA,EAAM,oBAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,EACF;AAEA,EAAA,MAAM,MAAA,GAAS,uBAAuB,OAAO,CAAA;AAC7C,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AAEA,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,WAAW,uBAAA,CAAwB,MAAA,CAAO,KAAK,CAAA,EAAE;AACtE","file":"chunk-FXLVNCG3.js","sourcesContent":["/**\n * Format decorator — strip → validate → apply official mask (UC-003).\n * @see docs/use-cases/UC-003-format-document.md\n * @see docs/VALIDATION-RULES.md BR-GLOBAL-002\n */\nimport { applyLinhaDigitavelMask } from '../core/boleto/mask.js';\nimport { detectBoletoInputKind } from '../core/boleto/detect.js';\nimport { validateLinhaDigitavel } from '../core/boleto/linha-digitavel.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatBoleto(input: string): FormatResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Boleto input is empty' };\n }\n\n const kind = detectBoletoInputKind(trimmed);\n if (kind === 'codigo-barras') {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'Boleto barcode formatting is not supported in v1',\n };\n }\n\n const result = validateLinhaDigitavel(trimmed);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n\n return { ok: true, formatted: applyLinhaDigitavelMask(result.value) };\n}\n"]}
1
+ {"version":3,"sources":["../src/format/boleto.ts"],"names":[],"mappings":";;;AAUO,SAAS,aAAa,KAAA,EAA6B;AACxD,EAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAC3B,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,IAAA,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,IAAA,EAAM,aAAA,EAAe,SAAS,uBAAA,EAAwB;AAAA,EAC5E;AAEA,EAAA,MAAM,IAAA,GAAO,sBAAsB,OAAO,CAAA;AAC1C,EAAA,IAAI,SAAS,eAAA,EAAiB;AAC5B,IAAA,OAAO;AAAA,MACL,EAAA,EAAI,KAAA;AAAA,MACJ,IAAA,EAAM,oBAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,EACF;AAEA,EAAA,MAAM,MAAA,GAAS,uBAAuB,OAAO,CAAA;AAC7C,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AAEA,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,WAAW,uBAAA,CAAwB,MAAA,CAAO,KAAK,CAAA,EAAE;AACtE","file":"chunk-XWHGXSQV.js","sourcesContent":["/**\n * Format decorator — strip → validate → apply official mask (UC-003).\n * @see docs/use-cases/UC-003-format-document.md\n * @see docs/VALIDATION-RULES.md BR-GLOBAL-002\n */\nimport { applyLinhaDigitavelMask } from '../core/boleto/mask.js';\nimport { detectBoletoInputKind } from '../core/boleto/detect.js';\nimport { validateLinhaDigitavel } from '../core/boleto/linha-digitavel.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatBoleto(input: string): FormatResult {\n const trimmed = input.trim();\n if (trimmed.length === 0) {\n return { ok: false, code: 'EMPTY_INPUT', message: 'Boleto input is empty' };\n }\n\n const kind = detectBoletoInputKind(trimmed);\n if (kind === 'codigo-barras') {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'Boleto barcode formatting is not supported in v1',\n };\n }\n\n const result = validateLinhaDigitavel(trimmed);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n\n return { ok: true, formatted: applyLinhaDigitavelMask(result.value) };\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { validatePlaca } from './chunk-WPL47PWJ.js';
1
+ import { validatePlaca } from './chunk-3LMDBXU6.js';
2
2
 
3
3
  // src/format/placa.ts
4
4
  function formatPlaca(input) {
@@ -10,5 +10,5 @@ function formatPlaca(input) {
10
10
  }
11
11
 
12
12
  export { formatPlaca };
13
- //# sourceMappingURL=chunk-G32U6YQ5.js.map
14
- //# sourceMappingURL=chunk-G32U6YQ5.js.map
13
+ //# sourceMappingURL=chunk-YD5MPZWY.js.map
14
+ //# sourceMappingURL=chunk-YD5MPZWY.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/format/placa.ts"],"names":[],"mappings":";;;AAGO,SAAS,YAAY,KAAA,EAA6B;AACvD,EAAA,MAAM,MAAA,GAAS,cAAc,KAAK,CAAA;AAClC,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,SAAA,EAAW,OAAO,KAAA,EAAM;AAC7C","file":"chunk-G32U6YQ5.js","sourcesContent":["import { validatePlaca } from '../core/placa/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatPlaca(input: string): FormatResult {\n const result = validatePlaca(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: result.value };\n}\n"]}
1
+ {"version":3,"sources":["../src/format/placa.ts"],"names":[],"mappings":";;;AAGO,SAAS,YAAY,KAAA,EAA6B;AACvD,EAAA,MAAM,MAAA,GAAS,cAAc,KAAK,CAAA;AAClC,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,SAAA,EAAW,OAAO,KAAA,EAAM;AAC7C","file":"chunk-YD5MPZWY.js","sourcesContent":["import { validatePlaca } from '../core/placa/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatPlaca(input: string): FormatResult {\n const result = validatePlaca(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: result.value };\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { stripCnh } from './chunk-YYHS5WQN.js';
2
2
  import { weightedSum } from './chunk-OTZHMJYE.js';
3
- import { brandCnh } from './chunk-MSLJF2FM.js';
3
+ import { brandCnh } from './chunk-NUQSMT4Y.js';
4
4
 
5
5
  // src/core/cnh/constants.ts
6
6
  var CNH_DV1_WEIGHTS = [9, 8, 7, 6, 5, 4, 3, 2, 1];
@@ -100,5 +100,5 @@ function validateCnh(input) {
100
100
  }
101
101
 
102
102
  export { CNH_BASE_LENGTH, CNH_DV1_WEIGHTS, CNH_DV2_WEIGHTS, CNH_GOLDEN_DISCOUNT_CASE, CNH_GOLDEN_PRIMARY, CNH_GOLDEN_PRIMARY_DECORATED_INPUT, CNH_GOLDEN_SECONDARY, CNH_LENGTH, CNH_NUMERIC_PATTERN, CNH_OFFICIAL_SOURCE_URL, CNH_SENATRAN_VALIDAR_URL, computeCnhCheckDigits, isValidCnh, validateCnh };
103
- //# sourceMappingURL=chunk-US4OLTJ2.js.map
104
- //# sourceMappingURL=chunk-US4OLTJ2.js.map
103
+ //# sourceMappingURL=chunk-YNVMVDFN.js.map
104
+ //# sourceMappingURL=chunk-YNVMVDFN.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/cnh/constants.ts","../src/core/cnh/check-digits.ts","../src/core/cnh/index.ts"],"names":[],"mappings":"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","file":"chunk-US4OLTJ2.js","sourcesContent":["/**\n * CNH constants — Registro Nacional modulo 11 (CONTRAN / SENATRAN).\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao5112014.pdf\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/Resolucao8862021.pdf\n * @see https://www.gov.br/pt-br/servicos/validar-cnh\n * @see https://siga0984.wordpress.com/2019/05/01/algoritmos-validacao-de-cnh/ — algorithm cross-check (AdvPL)\n * @see https://www.geravalida.com.br/validador-cnh — implementation cross-check\n * @see https://geradorbr.com/validador-de-cnh/ — implementation cross-check\n */\nexport const CNH_DV1_WEIGHTS = [9, 8, 7, 6, 5, 4, 3, 2, 1] as const;\nexport const CNH_DV2_WEIGHTS = [1, 2, 3, 4, 5, 6, 7, 8, 9] as const;\nexport const CNH_LENGTH = 11;\nexport const CNH_BASE_LENGTH = 9;\nexport const CNH_NUMERIC_PATTERN = /^\\d{11}$/;\n\n/** Golden primary — DV walkthrough: base `624729276` → DV `37`. */\nexport const CNH_GOLDEN_PRIMARY = '62472927637';\nexport const CNH_GOLDEN_SECONDARY = '69044271146';\nexport const CNH_GOLDEN_DISCOUNT_CASE = '00000001801';\n\n/** Non-official CPF-style decoration — accepted on input via strip, never emitted by format. */\nexport const CNH_GOLDEN_PRIMARY_DECORATED_INPUT = '624.729.276-37';\n\nexport const CNH_OFFICIAL_SOURCE_URL =\n 'https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao5112014.pdf';\n\n/** SENATRAN online validation — requires plain 11-digit registration number. */\nexport const CNH_SENATRAN_VALIDAR_URL = 'https://www.gov.br/pt-br/servicos/validar-cnh';\n","/**\n * CNH check digits — modulo 11 with inter-DV discount (desconto).\n * DV1 and DV2 weighted sums are computed in parallel on the same 9 base digits.\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao5112014.pdf\n * @see https://siga0984.wordpress.com/2019/05/01/algoritmos-validacao-de-cnh/ — algorithm cross-check (AdvPL)\n */\nimport { weightedSum } from '../cnpj/modulo11.js';\nimport { CNH_DV1_WEIGHTS, CNH_DV2_WEIGHTS } from './constants.js';\n\nfunction digitValues(chars: string): number[] {\n const values: number[] = [];\n for (let i = 0; i < chars.length; i++) {\n values.push(Number(chars.charAt(i)));\n }\n return values;\n}\n\nexport function computeCnhFirstCheckDigit(base: string): { dv: number; discount: number } {\n const remainder = weightedSum(digitValues(base), CNH_DV1_WEIGHTS) % 11;\n if (remainder >= 10) {\n return { dv: 0, discount: 2 };\n }\n return { dv: remainder, discount: 0 };\n}\n\nexport function computeCnhSecondCheckDigit(base: string, discount: number): number {\n let dv = weightedSum(digitValues(base), CNH_DV2_WEIGHTS) % 11;\n if (discount === 2) {\n if (dv - 2 < 0) {\n dv += 9;\n } else {\n dv -= 2;\n }\n }\n if (dv > 9) {\n dv = 0;\n }\n return dv;\n}\n\nexport function computeCnhCheckDigits(base: string): string {\n const { dv: dv1, discount } = computeCnhFirstCheckDigit(base);\n const dv2 = computeCnhSecondCheckDigit(base, discount);\n return `${String(dv1)}${String(dv2)}`;\n}\n","/**\n * CNH validation — Registro Nacional modulo 11 with inter-DV discount.\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao5112014.pdf\n * @see https://www.gov.br/infraestrutura/pt-br/assuntos/transito/senatran\n */\nimport { stripCnh } from '../../strip/index.js';\nimport type { Cnh, ValidationResult } from '../../types/validation-result.js';\nimport { brandCnh } from '../../types/validation-result.js';\nimport { computeCnhCheckDigits } from './check-digits.js';\nimport { CNH_BASE_LENGTH, CNH_LENGTH } from './constants.js';\n\nexport {\n CNH_BASE_LENGTH,\n CNH_DV1_WEIGHTS,\n CNH_DV2_WEIGHTS,\n CNH_GOLDEN_DISCOUNT_CASE,\n CNH_GOLDEN_PRIMARY,\n CNH_GOLDEN_PRIMARY_DECORATED_INPUT,\n CNH_GOLDEN_SECONDARY,\n CNH_LENGTH,\n CNH_NUMERIC_PATTERN,\n CNH_OFFICIAL_SOURCE_URL,\n CNH_SENATRAN_VALIDAR_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 hasRepeatedDigits(value: string): boolean {\n const first = value[0];\n for (let i = 1; i < value.length; i++) {\n if (value[i] !== first) {\n return false;\n }\n }\n return true;\n}\n\nfunction isValidCnhChecksum(stripped: string): boolean {\n const base = stripped.slice(0, CNH_BASE_LENGTH);\n const expected = computeCnhCheckDigits(base);\n return stripped.slice(CNH_BASE_LENGTH) === expected;\n}\n\nfunction validateStructure(input: string, stripped: string): FailedResult | null {\n if (stripped.length === 0) {\n return failure('EMPTY_INPUT', 'CNH input is empty');\n }\n\n const withoutMask = input.replace(/[.\\s-]/g, '');\n if (/[^0-9]/.test(withoutMask)) {\n return failure('INVALID_CHARACTER', 'CNH contains invalid characters');\n }\n\n if (stripped.length !== CNH_LENGTH) {\n return failure('INVALID_LENGTH', `CNH must have ${CNH_LENGTH} digits after normalization`);\n }\n\n if (hasRepeatedDigits(stripped)) {\n return failure('KNOWN_INVALID_PATTERN', 'CNH with all identical digits is invalid');\n }\n\n return null;\n}\n\nexport function isValidCnh(input: string): boolean {\n return validateCnh(input).ok;\n}\n\nexport function validateCnh(input: string): ValidationResult<Cnh> {\n const stripped = stripCnh(input);\n const structural = validateStructure(input, stripped);\n if (structural) {\n return structural;\n }\n\n if (isValidCnhChecksum(stripped)) {\n return { ok: true, value: brandCnh(stripped), format: 'numeric' };\n }\n\n return failure('INVALID_CHECK_DIGIT', 'CNH check digits are invalid');\n}\n"]}
1
+ {"version":3,"sources":["../src/core/cnh/constants.ts","../src/core/cnh/check-digits.ts","../src/core/cnh/index.ts"],"names":[],"mappings":"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","file":"chunk-YNVMVDFN.js","sourcesContent":["/**\n * CNH constants — Registro Nacional modulo 11 (CONTRAN / SENATRAN).\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao5112014.pdf\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/Resolucao8862021.pdf\n * @see https://www.gov.br/pt-br/servicos/validar-cnh\n * @see https://siga0984.wordpress.com/2019/05/01/algoritmos-validacao-de-cnh/ — algorithm cross-check (AdvPL)\n * @see https://www.geravalida.com.br/validador-cnh — implementation cross-check\n * @see https://geradorbr.com/validador-de-cnh/ — implementation cross-check\n */\nexport const CNH_DV1_WEIGHTS = [9, 8, 7, 6, 5, 4, 3, 2, 1] as const;\nexport const CNH_DV2_WEIGHTS = [1, 2, 3, 4, 5, 6, 7, 8, 9] as const;\nexport const CNH_LENGTH = 11;\nexport const CNH_BASE_LENGTH = 9;\nexport const CNH_NUMERIC_PATTERN = /^\\d{11}$/;\n\n/** Golden primary — DV walkthrough: base `624729276` → DV `37`. */\nexport const CNH_GOLDEN_PRIMARY = '62472927637';\nexport const CNH_GOLDEN_SECONDARY = '69044271146';\nexport const CNH_GOLDEN_DISCOUNT_CASE = '00000001801';\n\n/** Non-official CPF-style decoration — accepted on input via strip, never emitted by format. */\nexport const CNH_GOLDEN_PRIMARY_DECORATED_INPUT = '624.729.276-37';\n\nexport const CNH_OFFICIAL_SOURCE_URL =\n 'https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao5112014.pdf';\n\n/** SENATRAN online validation — requires plain 11-digit registration number. */\nexport const CNH_SENATRAN_VALIDAR_URL = 'https://www.gov.br/pt-br/servicos/validar-cnh';\n","/**\n * CNH check digits — modulo 11 with inter-DV discount (desconto).\n * DV1 and DV2 weighted sums are computed in parallel on the same 9 base digits.\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao5112014.pdf\n * @see https://siga0984.wordpress.com/2019/05/01/algoritmos-validacao-de-cnh/ — algorithm cross-check (AdvPL)\n */\nimport { weightedSum } from '../cnpj/modulo11.js';\nimport { CNH_DV1_WEIGHTS, CNH_DV2_WEIGHTS } from './constants.js';\n\nfunction digitValues(chars: string): number[] {\n const values: number[] = [];\n for (let i = 0; i < chars.length; i++) {\n values.push(Number(chars.charAt(i)));\n }\n return values;\n}\n\nexport function computeCnhFirstCheckDigit(base: string): { dv: number; discount: number } {\n const remainder = weightedSum(digitValues(base), CNH_DV1_WEIGHTS) % 11;\n if (remainder >= 10) {\n return { dv: 0, discount: 2 };\n }\n return { dv: remainder, discount: 0 };\n}\n\nexport function computeCnhSecondCheckDigit(base: string, discount: number): number {\n let dv = weightedSum(digitValues(base), CNH_DV2_WEIGHTS) % 11;\n if (discount === 2) {\n if (dv - 2 < 0) {\n dv += 9;\n } else {\n dv -= 2;\n }\n }\n if (dv > 9) {\n dv = 0;\n }\n return dv;\n}\n\nexport function computeCnhCheckDigits(base: string): string {\n const { dv: dv1, discount } = computeCnhFirstCheckDigit(base);\n const dv2 = computeCnhSecondCheckDigit(base, discount);\n return `${String(dv1)}${String(dv2)}`;\n}\n","/**\n * CNH validation — Registro Nacional modulo 11 with inter-DV discount.\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao5112014.pdf\n * @see https://www.gov.br/infraestrutura/pt-br/assuntos/transito/senatran\n */\nimport { stripCnh } from '../../strip/index.js';\nimport type { Cnh, ValidationResult } from '../../types/validation-result.js';\nimport { brandCnh } from '../../types/validation-result.js';\nimport { computeCnhCheckDigits } from './check-digits.js';\nimport { CNH_BASE_LENGTH, CNH_LENGTH } from './constants.js';\n\nexport {\n CNH_BASE_LENGTH,\n CNH_DV1_WEIGHTS,\n CNH_DV2_WEIGHTS,\n CNH_GOLDEN_DISCOUNT_CASE,\n CNH_GOLDEN_PRIMARY,\n CNH_GOLDEN_PRIMARY_DECORATED_INPUT,\n CNH_GOLDEN_SECONDARY,\n CNH_LENGTH,\n CNH_NUMERIC_PATTERN,\n CNH_OFFICIAL_SOURCE_URL,\n CNH_SENATRAN_VALIDAR_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 hasRepeatedDigits(value: string): boolean {\n const first = value[0];\n for (let i = 1; i < value.length; i++) {\n if (value[i] !== first) {\n return false;\n }\n }\n return true;\n}\n\nfunction isValidCnhChecksum(stripped: string): boolean {\n const base = stripped.slice(0, CNH_BASE_LENGTH);\n const expected = computeCnhCheckDigits(base);\n return stripped.slice(CNH_BASE_LENGTH) === expected;\n}\n\nfunction validateStructure(input: string, stripped: string): FailedResult | null {\n if (stripped.length === 0) {\n return failure('EMPTY_INPUT', 'CNH input is empty');\n }\n\n const withoutMask = input.replace(/[.\\s-]/g, '');\n if (/[^0-9]/.test(withoutMask)) {\n return failure('INVALID_CHARACTER', 'CNH contains invalid characters');\n }\n\n if (stripped.length !== CNH_LENGTH) {\n return failure('INVALID_LENGTH', `CNH must have ${CNH_LENGTH} digits after normalization`);\n }\n\n if (hasRepeatedDigits(stripped)) {\n return failure('KNOWN_INVALID_PATTERN', 'CNH with all identical digits is invalid');\n }\n\n return null;\n}\n\nexport function isValidCnh(input: string): boolean {\n return validateCnh(input).ok;\n}\n\nexport function validateCnh(input: string): ValidationResult<Cnh> {\n const stripped = stripCnh(input);\n const structural = validateStructure(input, stripped);\n if (structural) {\n return structural;\n }\n\n if (isValidCnhChecksum(stripped)) {\n return { ok: true, value: brandCnh(stripped), format: 'numeric' };\n }\n\n return failure('INVALID_CHECK_DIGIT', 'CNH check digits are invalid');\n}\n"]}
package/dist/cnh.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { x as ValidationResult, g as Cnh, F as FormatResult } from './validation-result-BhQE-1_O.js';
2
- export { D as DocumentFormat, V as ValidationErrorCode } from './validation-result-BhQE-1_O.js';
1
+ import { x as ValidationResult, g as Cnh, F as FormatResult } from './validation-result-BaI2Xder.js';
2
+ export { D as DocumentFormat, V as ValidationErrorCode } from './validation-result-BaI2Xder.js';
3
3
 
4
4
  /**
5
5
  * CNH constants — Registro Nacional modulo 11 (CONTRAN / SENATRAN).
package/dist/cnh.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import './chunk-Y2KUN2D3.js';
2
- export { formatCnh } from './chunk-6QJFMOIX.js';
3
- export { CNH_BASE_LENGTH, CNH_DV1_WEIGHTS, CNH_DV2_WEIGHTS, CNH_GOLDEN_DISCOUNT_CASE, CNH_GOLDEN_PRIMARY, CNH_GOLDEN_PRIMARY_DECORATED_INPUT, CNH_GOLDEN_SECONDARY, CNH_LENGTH, CNH_OFFICIAL_SOURCE_URL, CNH_SENATRAN_VALIDAR_URL, isValidCnh, validateCnh } from './chunk-US4OLTJ2.js';
2
+ export { formatCnh } from './chunk-VWVQWN2G.js';
3
+ export { CNH_BASE_LENGTH, CNH_DV1_WEIGHTS, CNH_DV2_WEIGHTS, CNH_GOLDEN_DISCOUNT_CASE, CNH_GOLDEN_PRIMARY, CNH_GOLDEN_PRIMARY_DECORATED_INPUT, CNH_GOLDEN_SECONDARY, CNH_LENGTH, CNH_OFFICIAL_SOURCE_URL, CNH_SENATRAN_VALIDAR_URL, isValidCnh, validateCnh } from './chunk-YNVMVDFN.js';
4
4
  export { stripCnh } 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=cnh.js.map
11
11
  //# sourceMappingURL=cnh.js.map
package/dist/cnpj.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { D as DocumentFormat, x as ValidationResult, F as FormatResult } from './validation-result-BhQE-1_O.js';
2
- export { h as Cnpj, V as ValidationErrorCode } from './validation-result-BhQE-1_O.js';
1
+ import { D as DocumentFormat, x as ValidationResult, F as FormatResult } from './validation-result-BaI2Xder.js';
2
+ export { h as Cnpj, V as ValidationErrorCode } from './validation-result-BaI2Xder.js';
3
3
 
4
4
  declare function detectCnpjFormat(stripped: string): DocumentFormat | 'unknown';
5
5
 
package/dist/cnpj.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import './chunk-LF2B4VPE.js';
2
- export { formatCnpj, formatCnpjAlphanumeric, formatCnpjNumeric } from './chunk-LYBFUKHR.js';
3
- import './chunk-XUO7FV6Z.js';
4
- export { CNPJ_GOLDEN_ALPHANUMERIC, CNPJ_GOLDEN_ALPHANUMERIC_MASKED, CNPJ_GOLDEN_NUMERIC, CNPJ_GOLDEN_NUMERIC_MASKED, CNPJ_OFFICIAL_SOURCE_URL, detectCnpjFormat, isValidCnpj, isValidCnpjAlphanumeric, isValidCnpjNumeric, validateCnpj } from './chunk-YXELVV37.js';
5
- export { stripCnpj } from './chunk-EB3G4IG6.js';
2
+ export { formatCnpj, formatCnpjAlphanumeric, formatCnpjNumeric } from './chunk-RMTHCPIV.js';
3
+ import './chunk-CSRBRKXY.js';
4
+ export { CNPJ_GOLDEN_ALPHANUMERIC, CNPJ_GOLDEN_ALPHANUMERIC_MASKED, CNPJ_GOLDEN_NUMERIC, CNPJ_GOLDEN_NUMERIC_MASKED, CNPJ_OFFICIAL_SOURCE_URL, detectCnpjFormat, isValidCnpj, isValidCnpjAlphanumeric, isValidCnpjNumeric, validateCnpj } from './chunk-FBARVLLP.js';
6
5
  import './chunk-OTZHMJYE.js';
7
- import './chunk-MSLJF2FM.js';
6
+ export { stripCnpj } from './chunk-EB3G4IG6.js';
7
+ import './chunk-NUQSMT4Y.js';
8
8
  //# sourceMappingURL=cnpj.js.map
9
9
  //# sourceMappingURL=cnpj.js.map
@@ -0,0 +1,16 @@
1
+ import { P as PlatformDocumentType, a as PlatformOptions } from './types-MXifBcV5.js';
2
+ import './validation-result-BaI2Xder.js';
3
+ import './index-BEJFgDXj.js';
4
+
5
+ type CompareResult = {
6
+ equal: boolean;
7
+ };
8
+ declare function compare(a: string, b: string, type: PlatformDocumentType, options?: PlatformOptions): CompareResult;
9
+ /** Runtime guard for dynamic callers (non-exhaustive type string). */
10
+ declare function compareRuntime(a: string, b: string, type: string, options?: PlatformOptions): CompareResult | {
11
+ equal: false;
12
+ code: 'UNSUPPORTED_FORMAT';
13
+ message: string;
14
+ };
15
+
16
+ export { type CompareResult, compare, compareRuntime };
@@ -0,0 +1,32 @@
1
+ export { compare, compareRuntime } from './chunk-HUIMOB5E.js';
2
+ import './chunk-G6OBZRZM.js';
3
+ import './chunk-FKFRB3RJ.js';
4
+ import './chunk-GVK6IMBF.js';
5
+ import './chunk-I66ZRSEN.js';
6
+ import './chunk-AO6UTQ4A.js';
7
+ import './chunk-JLCQ7MGC.js';
8
+ import './chunk-3LMDBXU6.js';
9
+ import './chunk-DAR6VOMT.js';
10
+ import './chunk-CSVGWTCG.js';
11
+ import './chunk-665E36SC.js';
12
+ import './chunk-CDNOUZEI.js';
13
+ import './chunk-AU6TW3GH.js';
14
+ import './chunk-N6RQICAP.js';
15
+ import './chunk-E2EFGMWA.js';
16
+ import './chunk-V7UJ55KW.js';
17
+ import './chunk-H3MLGGFI.js';
18
+ import './chunk-P2KNN6ZR.js';
19
+ import './chunk-63G7QO73.js';
20
+ import './chunk-ANWQBKGN.js';
21
+ import './chunk-TE6NSONR.js';
22
+ import './chunk-YNVMVDFN.js';
23
+ import './chunk-YYHS5WQN.js';
24
+ import './chunk-4SNBZFS5.js';
25
+ import './chunk-UCJPSJN5.js';
26
+ import './chunk-CSRBRKXY.js';
27
+ import './chunk-FBARVLLP.js';
28
+ import './chunk-OTZHMJYE.js';
29
+ import './chunk-EB3G4IG6.js';
30
+ import './chunk-NUQSMT4Y.js';
31
+ //# sourceMappingURL=compare.js.map
32
+ //# sourceMappingURL=compare.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"compare.js"}
package/dist/cpf.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { x as ValidationResult, F as FormatResult } from './validation-result-BhQE-1_O.js';
2
- export { j as Cpf, D as DocumentFormat, V as ValidationErrorCode } from './validation-result-BhQE-1_O.js';
1
+ import { x as ValidationResult, F as FormatResult } from './validation-result-BaI2Xder.js';
2
+ export { j as Cpf, D as DocumentFormat, V as ValidationErrorCode } from './validation-result-BaI2Xder.js';
3
3
 
4
4
  declare const CPF_GOLDEN_PRIMARY = "12345678909";
5
5
  declare const CPF_GOLDEN_SECONDARY = "11144477735";
package/dist/cpf.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import './chunk-YGA5W54J.js';
2
- export { formatCpf } from './chunk-NHLLC6WH.js';
3
- import './chunk-KQDLIGSG.js';
4
- export { CPF_GOLDEN_PRIMARY, CPF_GOLDEN_PRIMARY_MASKED, CPF_GOLDEN_SECONDARY, CPF_OFFICIAL_SOURCE_URL, isValidCpf, validateCpf } from './chunk-F6PTZY4O.js';
2
+ export { formatCpf } from './chunk-TJCE4TVX.js';
3
+ import './chunk-P2KNN6ZR.js';
4
+ export { CPF_GOLDEN_PRIMARY, CPF_GOLDEN_PRIMARY_MASKED, CPF_GOLDEN_SECONDARY, CPF_OFFICIAL_SOURCE_URL, isValidCpf, validateCpf } from './chunk-63G7QO73.js';
5
5
  export { stripCpf } from './chunk-UCJPSJN5.js';
6
6
  import './chunk-OTZHMJYE.js';
7
- import './chunk-MSLJF2FM.js';
7
+ import './chunk-NUQSMT4Y.js';
8
8
  //# sourceMappingURL=cpf.js.map
9
9
  //# sourceMappingURL=cpf.js.map
package/dist/detect.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { U as UfCode, D as DocumentFormat, V as ValidationErrorCode } from './validation-result-BhQE-1_O.js';
1
+ import { U as UfCode, D as DocumentFormat, V as ValidationErrorCode } from './validation-result-BaI2Xder.js';
2
2
 
3
3
  type DetectableDocumentType = 'cpf' | 'cnpj' | 'cep' | 'placa' | 'pis-pasep' | 'pix' | 'telefone' | 'boleto' | 'cartao-credito' | 'cnh' | 'renavam' | 'nfe-chave' | 'titulo-eleitor' | 'inscricao-estadual' | 'inscricao-estadual-produtor-rural' | 'brcode' | 'unknown';
4
4
  type DetectOptions = {
package/dist/detect.js CHANGED
@@ -1,26 +1,28 @@
1
- export { detect } from './chunk-JZNTCZMV.js';
2
- import './chunk-5UL3M7IU.js';
3
- import './chunk-DJUANFIK.js';
4
- import './chunk-3QP6R46N.js';
5
- import './chunk-Y6IW2LMW.js';
6
- import './chunk-D36RM7OD.js';
7
- import './chunk-KH7DWOUA.js';
8
- import './chunk-WPL47PWJ.js';
9
- import './chunk-4W4OKLSZ.js';
10
- import './chunk-WCQUQ2WX.js';
11
- import './chunk-MK7OJUF5.js';
12
- import './chunk-AK5GVYQ5.js';
13
- import './chunk-2JJS46FM.js';
14
- import './chunk-US4OLTJ2.js';
1
+ export { detect } from './chunk-WC6YYFWP.js';
2
+ import './chunk-AO6UTQ4A.js';
3
+ import './chunk-JLCQ7MGC.js';
4
+ import './chunk-3LMDBXU6.js';
5
+ import './chunk-DAR6VOMT.js';
6
+ import './chunk-CSVGWTCG.js';
7
+ import './chunk-665E36SC.js';
8
+ import './chunk-CDNOUZEI.js';
9
+ import './chunk-AU6TW3GH.js';
10
+ import './chunk-N6RQICAP.js';
11
+ import './chunk-E2EFGMWA.js';
12
+ import './chunk-V7UJ55KW.js';
13
+ import './chunk-H3MLGGFI.js';
14
+ import './chunk-P2KNN6ZR.js';
15
+ import './chunk-63G7QO73.js';
16
+ import './chunk-ANWQBKGN.js';
17
+ import './chunk-TE6NSONR.js';
18
+ import './chunk-YNVMVDFN.js';
15
19
  import './chunk-YYHS5WQN.js';
16
20
  import './chunk-4SNBZFS5.js';
17
- import './chunk-XUO7FV6Z.js';
18
- import './chunk-YXELVV37.js';
19
- import './chunk-EB3G4IG6.js';
20
- import './chunk-KQDLIGSG.js';
21
- import './chunk-F6PTZY4O.js';
22
21
  import './chunk-UCJPSJN5.js';
22
+ import './chunk-CSRBRKXY.js';
23
+ import './chunk-FBARVLLP.js';
23
24
  import './chunk-OTZHMJYE.js';
24
- import './chunk-MSLJF2FM.js';
25
+ import './chunk-EB3G4IG6.js';
26
+ import './chunk-NUQSMT4Y.js';
25
27
  //# sourceMappingURL=detect.js.map
26
28
  //# sourceMappingURL=detect.js.map
package/dist/diff.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ import { P as PlatformDocumentType, a as PlatformOptions } from './types-MXifBcV5.js';
2
+ import './validation-result-BaI2Xder.js';
3
+ import './index-BEJFgDXj.js';
4
+
5
+ type DiffField = {
6
+ field: string;
7
+ a: string;
8
+ b: string;
9
+ };
10
+ type DiffResult = {
11
+ changed: boolean;
12
+ fields: DiffField[];
13
+ };
14
+ declare function diff(a: string, b: string, type: PlatformDocumentType, options?: PlatformOptions): DiffResult;
15
+
16
+ export { type DiffField, type DiffResult, diff };
package/dist/diff.js ADDED
@@ -0,0 +1,32 @@
1
+ export { diff } from './chunk-N6N5ATLY.js';
2
+ import './chunk-G6OBZRZM.js';
3
+ import './chunk-FKFRB3RJ.js';
4
+ import './chunk-GVK6IMBF.js';
5
+ import './chunk-I66ZRSEN.js';
6
+ import './chunk-AO6UTQ4A.js';
7
+ import './chunk-JLCQ7MGC.js';
8
+ import './chunk-3LMDBXU6.js';
9
+ import './chunk-DAR6VOMT.js';
10
+ import './chunk-CSVGWTCG.js';
11
+ import './chunk-665E36SC.js';
12
+ import './chunk-CDNOUZEI.js';
13
+ import './chunk-AU6TW3GH.js';
14
+ import './chunk-N6RQICAP.js';
15
+ import './chunk-E2EFGMWA.js';
16
+ import './chunk-V7UJ55KW.js';
17
+ import './chunk-H3MLGGFI.js';
18
+ import './chunk-P2KNN6ZR.js';
19
+ import './chunk-63G7QO73.js';
20
+ import './chunk-ANWQBKGN.js';
21
+ import './chunk-TE6NSONR.js';
22
+ import './chunk-YNVMVDFN.js';
23
+ import './chunk-YYHS5WQN.js';
24
+ import './chunk-4SNBZFS5.js';
25
+ import './chunk-UCJPSJN5.js';
26
+ import './chunk-CSRBRKXY.js';
27
+ import './chunk-FBARVLLP.js';
28
+ import './chunk-OTZHMJYE.js';
29
+ import './chunk-EB3G4IG6.js';
30
+ import './chunk-NUQSMT4Y.js';
31
+ //# sourceMappingURL=diff.js.map
32
+ //# sourceMappingURL=diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"diff.js"}
@@ -1,5 +1,8 @@
1
1
  import { j as CardBrand } from './constants-BqegsAc2.js';
2
- import { U as UfCode } from './validation-result-BhQE-1_O.js';
2
+ import { U as UfCode } from './validation-result-BaI2Xder.js';
3
+
4
+ /** FEBRABAN arrecadação linha display mask (48 digits). */
5
+ declare function applyArrecadacaoLinhaMask(linha: string): string;
3
6
 
4
7
  /**
5
8
  * Synthetic credit card PAN generation — Luhn + brand IIN prefixes (BR-GENERATE-001).
@@ -9,7 +12,19 @@ type GeneratableCardBrand = Exclude<CardBrand, 'unknown'>;
9
12
  declare const GENERATABLE_CARD_BRANDS: readonly GeneratableCardBrand[];
10
13
  declare function isGeneratableCardBrand(brand: string): brand is GeneratableCardBrand;
11
14
 
12
- type GeneratableDocumentType = 'cpf' | 'cnpj' | 'cep' | 'placa' | 'pis-pasep' | 'renavam' | 'cnh' | 'telefone' | 'cartao-credito' | 'inscricao-estadual' | 'titulo-eleitor';
15
+ /**
16
+ * Alphanumeric CPF generation stub — RFB spec not published (BR-GENERATE-001).
17
+ * @see docs/OFFICIAL-SOURCES.md — CPF row (alphanumeric planned 2026)
18
+ */
19
+ declare const CPF_ALPHA_GENERATE_STUB: {
20
+ ok: false;
21
+ code: "CPF_ALPHA_SPEC_PENDING";
22
+ message: string;
23
+ };
24
+ declare function rejectCpfAlphanumericGenerate(): typeof CPF_ALPHA_GENERATE_STUB;
25
+ declare function assertCpfAlphanumericGenerateAllowed(): void;
26
+
27
+ type GeneratableDocumentType = 'cpf' | 'cnpj' | 'cep' | 'placa' | 'pis-pasep' | 'renavam' | 'cnh' | 'telefone' | 'cartao-credito' | 'inscricao-estadual' | 'titulo-eleitor' | 'pix' | 'nfe-chave' | 'brcode' | 'boleto' | 'boleto-arrecadacao' | 'inscricao-estadual-produtor-rural';
13
28
  type GenerateFormat = 'numeric' | 'alphanumeric' | 'legacy' | 'mercosul' | 'celular' | 'fixo';
14
29
  type GenerateOptions = {
15
30
  format?: GenerateFormat;
@@ -17,8 +32,14 @@ type GenerateOptions = {
17
32
  seed?: number;
18
33
  uf?: UfCode;
19
34
  brand?: GeneratableCardBrand;
35
+ /** Static BR Code — defaults to synthetic EVP key + test merchant fields. */
36
+ pixKey?: string;
37
+ merchantName?: string;
38
+ merchantCity?: string;
39
+ amount?: string;
40
+ txid?: string;
20
41
  };
21
42
 
22
43
  declare function generate(type: GeneratableDocumentType, options?: GenerateOptions): string;
23
44
 
24
- export { GENERATABLE_CARD_BRANDS, type GeneratableCardBrand, type GeneratableDocumentType, type GenerateFormat, type GenerateOptions, generate, isGeneratableCardBrand };
45
+ export { CPF_ALPHA_GENERATE_STUB, GENERATABLE_CARD_BRANDS, type GeneratableCardBrand, type GeneratableDocumentType, type GenerateFormat, type GenerateOptions, applyArrecadacaoLinhaMask, assertCpfAlphanumericGenerateAllowed, generate, isGeneratableCardBrand, rejectCpfAlphanumericGenerate };
package/dist/generate.js CHANGED
@@ -1,33 +1,42 @@
1
- export { GENERATABLE_CARD_BRANDS, generate, isGeneratableCardBrand } from './chunk-Q7B5VOPW.js';
2
- import './chunk-CDGRHI7W.js';
3
- import './chunk-WLE2ENQA.js';
4
- import './chunk-G2Y63PIF.js';
5
- import './chunk-KSLDM5AD.js';
6
- import './chunk-IQGRFAQV.js';
7
- import './chunk-G32U6YQ5.js';
8
- import './chunk-XW5G2RAL.js';
9
- import './chunk-ZAUZRIOU.js';
10
- import './chunk-6QJFMOIX.js';
11
- import './chunk-LYBFUKHR.js';
12
- import './chunk-NHLLC6WH.js';
13
- import './chunk-5UL3M7IU.js';
14
- import './chunk-DJUANFIK.js';
15
- import './chunk-3QP6R46N.js';
16
- import './chunk-Y6IW2LMW.js';
17
- import './chunk-KH7DWOUA.js';
18
- import './chunk-WPL47PWJ.js';
19
- import './chunk-AK5GVYQ5.js';
20
- import './chunk-2JJS46FM.js';
21
- import './chunk-US4OLTJ2.js';
1
+ export { CPF_ALPHA_GENERATE_STUB, GENERATABLE_CARD_BRANDS, applyArrecadacaoLinhaMask, assertCpfAlphanumericGenerateAllowed, generate, isGeneratableCardBrand, rejectCpfAlphanumericGenerate } from './chunk-I7DM47IR.js';
2
+ import './chunk-JKDU7QYP.js';
3
+ import './chunk-VSW3NBJQ.js';
4
+ import './chunk-IYOPXJLY.js';
5
+ import './chunk-YD5MPZWY.js';
6
+ import './chunk-LAEUXOF6.js';
7
+ import './chunk-PD7ZTWMM.js';
8
+ import './chunk-EVULAGR5.js';
9
+ import './chunk-TJCE4TVX.js';
10
+ import './chunk-54UWHK5L.js';
11
+ import './chunk-XWHGXSQV.js';
12
+ import './chunk-B6A7VF4R.js';
13
+ import './chunk-MESOO5GZ.js';
14
+ import './chunk-VWVQWN2G.js';
15
+ import './chunk-RMTHCPIV.js';
16
+ import './chunk-I66ZRSEN.js';
17
+ import './chunk-AO6UTQ4A.js';
18
+ import './chunk-JLCQ7MGC.js';
19
+ import './chunk-3LMDBXU6.js';
20
+ import './chunk-DAR6VOMT.js';
21
+ import './chunk-CSVGWTCG.js';
22
+ import './chunk-665E36SC.js';
23
+ import './chunk-CDNOUZEI.js';
24
+ import './chunk-N6RQICAP.js';
25
+ import './chunk-E2EFGMWA.js';
26
+ import './chunk-V7UJ55KW.js';
27
+ import './chunk-H3MLGGFI.js';
28
+ import './chunk-P2KNN6ZR.js';
29
+ import './chunk-63G7QO73.js';
30
+ import './chunk-ANWQBKGN.js';
31
+ import './chunk-TE6NSONR.js';
32
+ import './chunk-YNVMVDFN.js';
22
33
  import './chunk-YYHS5WQN.js';
23
34
  import './chunk-4SNBZFS5.js';
24
- import './chunk-XUO7FV6Z.js';
25
- import './chunk-YXELVV37.js';
26
- import './chunk-EB3G4IG6.js';
27
- import './chunk-KQDLIGSG.js';
28
- import './chunk-F6PTZY4O.js';
29
35
  import './chunk-UCJPSJN5.js';
36
+ import './chunk-CSRBRKXY.js';
37
+ import './chunk-FBARVLLP.js';
30
38
  import './chunk-OTZHMJYE.js';
31
- import './chunk-MSLJF2FM.js';
39
+ import './chunk-EB3G4IG6.js';
40
+ import './chunk-NUQSMT4Y.js';
32
41
  //# sourceMappingURL=generate.js.map
33
42
  //# sourceMappingURL=generate.js.map
@@ -1,4 +1,4 @@
1
- import { U as UfCode, V as ValidationErrorCode } from './validation-result-BhQE-1_O.js';
1
+ import { U as UfCode, V as ValidationErrorCode } from './validation-result-BaI2Xder.js';
2
2
 
3
3
  type SanitizableDocumentType = 'cpf' | 'cnpj' | 'cep' | 'placa' | 'pis-pasep' | 'telefone' | 'cnh' | 'renavam' | 'titulo-eleitor' | 'nfe-chave' | 'boleto' | 'cartao-credito' | 'inscricao-estadual' | 'inscricao-estadual-produtor-rural';
4
4
  type SanitizeOptions = {
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { CNPJ_GOLDEN_ALPHANUMERIC, CNPJ_GOLDEN_ALPHANUMERIC_MASKED, CNPJ_GOLDEN_NUMERIC, CNPJ_GOLDEN_NUMERIC_MASKED, CNPJ_OFFICIAL_SOURCE_URL, detectCnpjFormat, formatCnpj, formatCnpjAlphanumeric, formatCnpjNumeric, isValidCnpj, isValidCnpjAlphanumeric, isValidCnpjNumeric, stripCnpj, validateCnpj } from './cnpj.js';
2
- import { F as FormatResult } from './validation-result-BhQE-1_O.js';
3
- export { B as BoletoInputKind, a as BoletoSituacao, b as BoletoValidationResult, c as BrCodePayload, d as BrCodeValidationResult, C as CartaoCredito, e as CartaoCreditoValidationResult, f as Cep, g as Cnh, h as Cnpj, i as CodigoBarras, j as Cpf, D as DocumentFormat, I as IeProdutorRuralValidationResult, k as InscricaoEstadual, l as InscricaoEstadualProdutorRural, m as InscricaoEstadualValidationResult, L as LinhaDigitavel, N as NfeChave, n as NfeChaveParsed, o as NfeChaveValidationResult, P as PisPasep, p as PixKey, q as PixKeyType, r as PixValidationResult, s as Placa, R as Renavam, T as Telefone, t as TelefoneTipo, u as TelefoneValidationResult, v as TituloEleitor, w as TituloEleitorValidationResult, U as UfCode, V as ValidationErrorCode, x as ValidationResult } from './validation-result-BhQE-1_O.js';
2
+ import { F as FormatResult } from './validation-result-BaI2Xder.js';
3
+ export { B as BoletoInputKind, a as BoletoSituacao, b as BoletoValidationResult, c as BrCodePayload, d as BrCodeValidationResult, C as CartaoCredito, e as CartaoCreditoValidationResult, f as Cep, g as Cnh, h as Cnpj, i as CodigoBarras, j as Cpf, D as DocumentFormat, I as IeProdutorRuralValidationResult, k as InscricaoEstadual, l as InscricaoEstadualProdutorRural, m as InscricaoEstadualValidationResult, L as LinhaDigitavel, N as NfeChave, n as NfeChaveParsed, o as NfeChaveValidationResult, P as PisPasep, p as PixKey, q as PixKeyType, r as PixValidationResult, s as Placa, R as Renavam, T as Telefone, t as TelefoneTipo, u as TelefoneValidationResult, v as TituloEleitor, w as TituloEleitorValidationResult, U as UfCode, V as ValidationErrorCode, x as ValidationResult } from './validation-result-BaI2Xder.js';
4
4
  export { CPF_GOLDEN_PRIMARY, CPF_GOLDEN_PRIMARY_MASKED, CPF_GOLDEN_SECONDARY, CPF_OFFICIAL_SOURCE_URL, formatCpf, isValidCpf, stripCpf, validateCpf } from './cpf.js';
5
5
  export { CEP_GOLDEN_PRIMARY, CEP_GOLDEN_PRIMARY_MASKED, CEP_GOLDEN_SECONDARY, CEP_OFFICIAL_SOURCE_URL, formatCep, isValidCep, stripCep, validateCep } from './cep.js';
6
6
  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, formatTelefone, isValidTelefone, normalizeTelefoneDigits, stripTelefone, validateTelefone } from './telefone.js';
@@ -8,18 +8,23 @@ export { CNH_BASE_LENGTH, CNH_DV1_WEIGHTS, CNH_DV2_WEIGHTS, CNH_GOLDEN_DISCOUNT_
8
8
  export { RENAVAM_BASE_LENGTH, RENAVAM_DV_WEIGHTS, RENAVAM_GOLDEN_DASH_INPUT, RENAVAM_GOLDEN_DV_ZERO, RENAVAM_GOLDEN_LEADING_ZEROS, RENAVAM_GOLDEN_PRIMARY, RENAVAM_GOLDEN_SECONDARY, RENAVAM_LENGTH, RENAVAM_OFFICIAL_SOURCE_URL, RENAVAM_SENATRAN_CONSULTA_URL, formatRenavam, isValidRenavam, stripRenavam, validateRenavam } from './renavam.js';
9
9
  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, formatTituloEleitor, isValidTituloEleitor, stripTituloEleitor, validateTituloEleitor } from './titulo-eleitor.js';
10
10
  export { NFE_CHAVE_BASE_LENGTH, NFE_CHAVE_DFE_PORTAL_URL, NFE_CHAVE_GOLDEN_PRIMARY, NFE_CHAVE_GOLDEN_SECONDARY, NFE_CHAVE_LENGTH, NFE_CHAVE_MOC_DV_SECTION_URL, NFE_CHAVE_MOC_ONLINE_URL, NFE_CHAVE_MOC_PDF_URL, NFE_CHAVE_MOD, NFE_CHAVE_NFCE_QR_ILLUSTRATIVE, NFE_CHAVE_NFCE_QR_ILLUSTRATIVE_URL, NFE_CHAVE_NUMERIC_PATTERN, NFE_CHAVE_OFFICIAL_SOURCE_URL, NFE_CHAVE_WEIGHT_CYCLE, NFE_IBGE_UF_BY_CODE, NFE_IBGE_UF_CODES, NFE_MODELOS, NFE_MODELO_NFCE, NFE_MODELO_NFE, NfeChaveParts, computeNfeChaveCheckDigit, computeNfeChaveWeightedSum, formatNfeChave, isValidNfeChave, isValidNfeChaveCheckDigit, parseNfeChave, parseNfeChaveParts, resolveNfeChaveCheckDigit, stripNfeChave, validateNfeChave } from './nfe-chave.js';
11
- export { I as IE_DF_GOLDEN, a as IE_DF_GOLDEN_MASKED, b as IE_DF_OFFICIAL_SOURCE_URL, c as IE_MT_GOLDEN_CANONICAL, d as IE_MT_GOLDEN_LEGACY, e as IE_MT_OFFICIAL_SOURCE_URL, f as IE_OFFICIAL_SOURCE_URLS, g as IE_SP_GOLDEN, h as IE_SP_GOLDEN_MASKED, i as IE_SP_OFFICIAL_SOURCE_URL, j as IE_SP_RURAL_GOLDEN, k as IE_SP_RURAL_GOLDEN_MASKED, l as IE_SP_RURAL_LENGTH, m as IE_SP_RURAL_OFFICIAL_SOURCE_URL, n as IE_SUPPORTED_UFS, o as formatIeProdutorRural, p as getIeProdutorRuralOfficialSourceUrl, q as isSpRuralIeInput, r as isValidIeProdutorRural, s as stripIeSpRural, s as stripInscricaoEstadualProdutorRural, v as validateIeProdutorRural, t as validateIeSpRural } from './inscricao-estadual-produtor-rural-CfWUaggb.js';
12
- export { BRCODE_GOLDEN_COMPOSITE, BRCODE_GOLDEN_DYNAMIC_URL, BRCODE_GOLDEN_STATIC_CPF, BRCODE_GOLDEN_STATIC_EMAIL, BRCODE_GOLDEN_STATIC_EVP, BRCODE_OFFICIAL_SOURCE_URL, BRCODE_PIX_INITIATION_MANUAL_URL, BrCodeParseResult, BrCodeParsedFields, TlvField, TlvParseResult, computeCrc16Ccitt, findPixMerchantAccount, findTlvField, isValidBrCode, normalizeBrCodePayload, parseBrCode, parseBrCodePayload, parseTlvSequence, validateBrCode, verifyBrCodeCrc } from './brcode.js';
11
+ export { I as IE_DF_GOLDEN, a as IE_DF_GOLDEN_MASKED, b as IE_DF_OFFICIAL_SOURCE_URL, c as IE_MT_GOLDEN_CANONICAL, d as IE_MT_GOLDEN_LEGACY, e as IE_MT_OFFICIAL_SOURCE_URL, f as IE_OFFICIAL_SOURCE_URLS, g as IE_SP_GOLDEN, h as IE_SP_GOLDEN_MASKED, i as IE_SP_OFFICIAL_SOURCE_URL, j as IE_SP_RURAL_GOLDEN, k as IE_SP_RURAL_GOLDEN_MASKED, l as IE_SP_RURAL_LENGTH, m as IE_SP_RURAL_OFFICIAL_SOURCE_URL, n as IE_SUPPORTED_UFS, o as formatIeProdutorRural, p as getIeProdutorRuralOfficialSourceUrl, q as isSpRuralIeInput, r as isValidIeProdutorRural, s as stripIeSpRural, s as stripInscricaoEstadualProdutorRural, v as validateIeProdutorRural, t as validateIeSpRural } from './inscricao-estadual-produtor-rural-BXFVQscj.js';
12
+ export { BRCODE_GOLDEN_COMPOSITE, BRCODE_GOLDEN_DYNAMIC_URL, BRCODE_GOLDEN_STATIC_CPF, BRCODE_GOLDEN_STATIC_EMAIL, BRCODE_GOLDEN_STATIC_EVP, BRCODE_OFFICIAL_SOURCE_URL, BRCODE_PIX_INITIATION_MANUAL_URL, BrCodeParseResult, BrCodeParsedFields, StaticPixBrCodeInput, TlvField, TlvParseResult, buildStaticPixBrCode, computeCrc16Ccitt, findPixMerchantAccount, findTlvField, isValidBrCode, normalizeBrCodePayload, parseBrCode, parseBrCodePayload, parseTlvSequence, validateBrCode, verifyBrCodeCrc } from './brcode.js';
13
13
  export { PLACA_GOLDEN_CONVERSION_FROM, PLACA_GOLDEN_CONVERSION_TO, PLACA_GOLDEN_LEGACY, PLACA_GOLDEN_MERCOSUL, PLACA_OFFICIAL_SOURCE_URL, PlacaFormat, convertPlacaToMercosul, detectPlacaFormat, formatPlaca, isValidPlaca, isValidPlacaLegacy, isValidPlacaMercosul, stripPlaca, validatePlaca } from './placa.js';
14
14
  export { PIS_PASEP_GOLDEN_PRIMARY, PIS_PASEP_GOLDEN_PRIMARY_MASKED, PIS_PASEP_GOLDEN_SECONDARY, PIS_PASEP_OFFICIAL_SOURCE_URL, formatPisPasep, isValidPisPasep, stripPisPasep, validatePisPasep } from './pis-pasep.js';
15
- 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, BoletoSituacaoCode, BoletoSituacaoKind, DetectedBoletoInputKind, FatorVencimentoValidationResult, ValidateBoletoOptions, ValorDocumentoValidationResult, applyLinhaDigitavelMask, computeModulo10FieldDv, computeModulo11BarcodeDv, convertCodigoBarrasToLinhaDigitavel, convertCodigoBarrasToLinhaDigits, convertLinhaToCodigoBarras, convertLinhaToCodigoBarrasDigits, detectBoletoInputKind, detectBoletoSituacao, formatBoleto, formatLinhaDigitavel, isValidBoleto, stripCodigoBarras, stripLinhaDigitavel, validateBoleto, validateCodigoBarras, validateFatorVencimento, validateLinhaDigitavel, validateValorDocumento } from './boleto.js';
16
- export { D as DetectedPixKeyType, P as PIX_DICT_API_SOURCE_URL, a as PIX_GOLDEN_CNPJ_ALPHANUMERIC, b as PIX_GOLDEN_CNPJ_NUMERIC, c as PIX_GOLDEN_CPF, d as PIX_GOLDEN_EMAIL, e as PIX_GOLDEN_EVP, f as PIX_GOLDEN_PHONE, g as PIX_OFFICIAL_SOURCE_URL, V as ValidatePixKeyOptions, h as detectPixKeyType, i as formatPixKey, j as isValidPixKey, v as validatePixCnpjKey, k as validatePixCpfKey, l as validatePixEmailKey, m as validatePixEvpKey, n as validatePixKey, o as validatePixPhoneKey } from './pix-ddldLlb7.js';
15
+ export { ArrecadacaoInputKind, ArrecadacaoValidationResult, ArrecadacaoValueType, BOLETO_ARRECADACAO_CODIGO_BARRAS_LENGTH, BOLETO_ARRECADACAO_LINHA_LENGTH, BOLETO_ARRECADACAO_OFFICIAL_SOURCE_URL, BOLETO_ARRECADACAO_PRODUCT_ID, 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, BoletoSituacaoCode, BoletoSituacaoKind, DetectedBoletoInputKind, FatorVencimentoValidationResult, ValidateBoletoOptions, ValorDocumentoValidationResult, applyLinhaDigitavelMask, computeArrecadacaoModulo10Dv, computeArrecadacaoModulo11Dv, computeArrecadacaoModulo10Dv as computeModulo10FieldDv, computeModulo11BarcodeDv, convertCodigoBarrasToLinhaDigitavel, convertCodigoBarrasToLinhaDigits, convertLinhaToCodigoBarras, convertLinhaToCodigoBarrasDigits, detectBoletoInputKind, detectBoletoSituacao, formatBoleto, formatLinhaDigitavel, isValidArrecadacao, isValidBoleto, linhaArrecadacaoToCodigoBarras, stripArrecadacao, stripCodigoBarras, stripLinhaDigitavel, validateArrecadacao, validateArrecadacaoCodigoBarras, validateArrecadacaoLinha, validateBoleto, validateCodigoBarras, validateFatorVencimento, validateLinhaDigitavel, validateValorDocumento } from './boleto.js';
16
+ export { D as DetectedPixKeyType, P as PIX_DICT_API_SOURCE_URL, a as PIX_GOLDEN_CNPJ_ALPHANUMERIC, b as PIX_GOLDEN_CNPJ_NUMERIC, c as PIX_GOLDEN_CPF, d as PIX_GOLDEN_EMAIL, e as PIX_GOLDEN_EVP, f as PIX_GOLDEN_PHONE, g as PIX_OFFICIAL_SOURCE_URL, V as ValidatePixKeyOptions, h as detectPixKeyType, i as formatPixKey, j as isValidPixKey, v as validatePixCnpjKey, k as validatePixCpfKey, l as validatePixEmailKey, m as validatePixEvpKey, n as validatePixKey, o as validatePixPhoneKey } from './pix-B4habHLG.js';
17
17
  export { computeLuhnSum, detectCardBrand, formatCartaoCredito, isValidCartaoCredito, isValidLuhn, passesLuhn, stripCartaoCredito, validateCartaoCredito } from './cartao-credito.js';
18
18
  export { ValidateInscricaoEstadualOptions, formatInscricaoEstadual, getIeOfficialSourceUrl, isValidInscricaoEstadual, stripInscricaoEstadual, validateIeDf, validateIeMt, validateIeSp, validateInscricaoEstadual } from './inscricao-estadual.js';
19
19
  export { DetectOptions, DetectResult, DetectableDocumentType, detect } from './detect.js';
20
- export { S as SanitizableDocumentType, a as SanitizeOptions, b as SanitizeResult, s as sanitize } from './index-CZLo9YOT.js';
21
- export { GENERATABLE_CARD_BRANDS, GeneratableCardBrand, GeneratableDocumentType, GenerateOptions, generate, isGeneratableCardBrand } from './generate.js';
20
+ export { S as SanitizableDocumentType, a as SanitizeOptions, b as SanitizeResult, s as sanitize } from './index-BEJFgDXj.js';
21
+ export { MASKABLE_DOCUMENT_TYPES, MaskOptions, MaskableDocumentType, isMaskableDocumentType, mask, maskRuntime } from './mask.js';
22
+ export { CompareResult, compare, compareRuntime } from './compare.js';
23
+ export { BatchInvalidEntry, BatchResult, BatchSummary, BatchValidEntry, batch } from './batch.js';
24
+ export { DiffField, DiffResult, diff } from './diff.js';
25
+ export { CPF_ALPHA_GENERATE_STUB, GENERATABLE_CARD_BRANDS, GeneratableCardBrand, GeneratableDocumentType, GenerateOptions, applyArrecadacaoLinhaMask, assertCpfAlphanumericGenerateAllowed, generate, isGeneratableCardBrand, rejectCpfAlphanumericGenerate } from './generate.js';
22
26
  export { C as CARTAO_GOLDEN_AMEX, a as CARTAO_GOLDEN_LUHN_WALKTHROUGH, b as CARTAO_GOLDEN_MASTERCARD, c as CARTAO_GOLDEN_MIN_LENGTH, d as CARTAO_GOLDEN_VISA, e as CARTAO_GOLDEN_VISA_MASKED, f as CARTAO_IEC_SOURCE_URL, g as CARTAO_OFFICIAL_SOURCE_URL, h as CARTAO_PAN_MAX_LENGTH, i as CARTAO_PAN_MIN_LENGTH, j as CardBrand } from './constants-BqegsAc2.js';
27
+ import './types-MXifBcV5.js';
23
28
 
24
29
  /**
25
30
  * Format decorator — union entrypoint (UC-003).