@br-validators/core 1.6.2 → 1.7.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 (126) hide show
  1. package/README.md +1 -0
  2. package/dist/anp-combustiveis.d.ts +64 -0
  3. package/dist/anp-combustiveis.js +37816 -0
  4. package/dist/anp-combustiveis.js.map +1 -0
  5. package/dist/batch.js +19 -19
  6. package/dist/brcode.js +7 -7
  7. package/dist/cbo.js +1 -1
  8. package/dist/cep.js +3 -3
  9. package/dist/cest.js +1 -1
  10. package/dist/cfop.js +1 -1
  11. package/dist/{chunk-SH6K4PUU.js → chunk-274K6AOM.js} +3 -3
  12. package/dist/{chunk-SH6K4PUU.js.map → chunk-274K6AOM.js.map} +1 -1
  13. package/dist/{chunk-L3IKYN3J.js → chunk-2FQOQMS6.js} +7 -7
  14. package/dist/{chunk-L3IKYN3J.js.map → chunk-2FQOQMS6.js.map} +1 -1
  15. package/dist/{chunk-RSJK46ZE.js → chunk-2M4RVHRO.js} +3 -3
  16. package/dist/{chunk-RSJK46ZE.js.map → chunk-2M4RVHRO.js.map} +1 -1
  17. package/dist/{chunk-72EZ2VUO.js → chunk-37IHHQKK.js} +3 -3
  18. package/dist/{chunk-72EZ2VUO.js.map → chunk-37IHHQKK.js.map} +1 -1
  19. package/dist/{chunk-ISMIJ5DH.js → chunk-3OTYX7QX.js} +3 -3
  20. package/dist/{chunk-ISMIJ5DH.js.map → chunk-3OTYX7QX.js.map} +1 -1
  21. package/dist/{chunk-G4OYYXVP.js → chunk-3ZALSJZT.js} +3 -3
  22. package/dist/{chunk-G4OYYXVP.js.map → chunk-3ZALSJZT.js.map} +1 -1
  23. package/dist/{chunk-MDFK6L72.js → chunk-43FQHKCC.js} +3 -3
  24. package/dist/{chunk-MDFK6L72.js.map → chunk-43FQHKCC.js.map} +1 -1
  25. package/dist/{chunk-F5OHOWZU.js → chunk-4GMBZLAS.js} +3 -3
  26. package/dist/{chunk-F5OHOWZU.js.map → chunk-4GMBZLAS.js.map} +1 -1
  27. package/dist/{chunk-D5POEOY7.js → chunk-4TOP3CZQ.js} +11 -11
  28. package/dist/{chunk-D5POEOY7.js.map → chunk-4TOP3CZQ.js.map} +1 -1
  29. package/dist/chunk-5AQKUZ6R.js +35 -0
  30. package/dist/chunk-5AQKUZ6R.js.map +1 -0
  31. package/dist/{chunk-CNJ4DIYS.js → chunk-5S3IURHL.js} +3 -3
  32. package/dist/{chunk-CNJ4DIYS.js.map → chunk-5S3IURHL.js.map} +1 -1
  33. package/dist/{chunk-Q5IK2DV4.js → chunk-6PODNJTJ.js} +4 -4
  34. package/dist/{chunk-Q5IK2DV4.js.map → chunk-6PODNJTJ.js.map} +1 -1
  35. package/dist/{chunk-BA4I3QL5.js → chunk-A2JXKXPS.js} +3 -3
  36. package/dist/{chunk-BA4I3QL5.js.map → chunk-A2JXKXPS.js.map} +1 -1
  37. package/dist/{chunk-PDGAMTBR.js → chunk-B4LJI7EP.js} +11 -11
  38. package/dist/{chunk-PDGAMTBR.js.map → chunk-B4LJI7EP.js.map} +1 -1
  39. package/dist/{chunk-BKF6CKUK.js → chunk-BBKNHH72.js} +7 -7
  40. package/dist/{chunk-BKF6CKUK.js.map → chunk-BBKNHH72.js.map} +1 -1
  41. package/dist/{chunk-OZ2VAF7L.js → chunk-BBYLFHZZ.js} +5 -5
  42. package/dist/{chunk-OZ2VAF7L.js.map → chunk-BBYLFHZZ.js.map} +1 -1
  43. package/dist/{chunk-XSYO3MVO.js → chunk-BMIYI2TC.js} +7 -7
  44. package/dist/{chunk-XSYO3MVO.js.map → chunk-BMIYI2TC.js.map} +1 -1
  45. package/dist/{chunk-WJ6M5YKH.js → chunk-CQQDYYFS.js} +5 -5
  46. package/dist/{chunk-WJ6M5YKH.js.map → chunk-CQQDYYFS.js.map} +1 -1
  47. package/dist/{chunk-HHYQ3GXP.js → chunk-DFPIMLGD.js} +7 -7
  48. package/dist/{chunk-HHYQ3GXP.js.map → chunk-DFPIMLGD.js.map} +1 -1
  49. package/dist/{chunk-YN4M6XL2.js → chunk-DH7N2ZS6.js} +7 -7
  50. package/dist/{chunk-YN4M6XL2.js.map → chunk-DH7N2ZS6.js.map} +1 -1
  51. package/dist/{chunk-A5UHVGRB.js → chunk-EOXFX7MM.js} +3 -3
  52. package/dist/{chunk-A5UHVGRB.js.map → chunk-EOXFX7MM.js.map} +1 -1
  53. package/dist/{chunk-EEFQYVLF.js → chunk-F7G4ISQB.js} +3 -3
  54. package/dist/{chunk-EEFQYVLF.js.map → chunk-F7G4ISQB.js.map} +1 -1
  55. package/dist/{chunk-FX6JEBWO.js → chunk-FL4UUTAC.js} +3 -3
  56. package/dist/{chunk-FX6JEBWO.js.map → chunk-FL4UUTAC.js.map} +1 -1
  57. package/dist/{chunk-24JBIV3A.js → chunk-GAU2MGUQ.js} +3 -3
  58. package/dist/{chunk-24JBIV3A.js.map → chunk-GAU2MGUQ.js.map} +1 -1
  59. package/dist/{chunk-ZJQ7DRH4.js → chunk-GFYWUMYH.js} +5 -5
  60. package/dist/{chunk-ZJQ7DRH4.js.map → chunk-GFYWUMYH.js.map} +1 -1
  61. package/dist/{chunk-4COFDYBY.js → chunk-GVQMJ45R.js} +13 -13
  62. package/dist/{chunk-4COFDYBY.js.map → chunk-GVQMJ45R.js.map} +1 -1
  63. package/dist/{chunk-LBAWZ4EV.js → chunk-HCH6G5XY.js} +3 -3
  64. package/dist/{chunk-LBAWZ4EV.js.map → chunk-HCH6G5XY.js.map} +1 -1
  65. package/dist/{chunk-U5SLA2ZP.js → chunk-HSLV626U.js} +7 -7
  66. package/dist/{chunk-U5SLA2ZP.js.map → chunk-HSLV626U.js.map} +1 -1
  67. package/dist/{chunk-IHSOANVC.js → chunk-KTP26VPJ.js} +7 -7
  68. package/dist/{chunk-IHSOANVC.js.map → chunk-KTP26VPJ.js.map} +1 -1
  69. package/dist/{chunk-5423O35D.js → chunk-MAJPROT7.js} +7 -7
  70. package/dist/{chunk-5423O35D.js.map → chunk-MAJPROT7.js.map} +1 -1
  71. package/dist/{chunk-C7WXL7UR.js → chunk-MNBNKSMF.js} +4 -4
  72. package/dist/{chunk-C7WXL7UR.js.map → chunk-MNBNKSMF.js.map} +1 -1
  73. package/dist/{chunk-T5NFIPTU.js → chunk-MXOYICSK.js} +3 -3
  74. package/dist/{chunk-T5NFIPTU.js.map → chunk-MXOYICSK.js.map} +1 -1
  75. package/dist/{chunk-BUZTJ3KC.js → chunk-MXWI7LLA.js} +11 -11
  76. package/dist/{chunk-BUZTJ3KC.js.map → chunk-MXWI7LLA.js.map} +1 -1
  77. package/dist/{chunk-QZNAGWZB.js → chunk-NWXFSSGF.js} +3 -3
  78. package/dist/{chunk-QZNAGWZB.js.map → chunk-NWXFSSGF.js.map} +1 -1
  79. package/dist/{chunk-26MSDS43.js → chunk-PN4XUBLV.js} +3 -3
  80. package/dist/{chunk-26MSDS43.js.map → chunk-PN4XUBLV.js.map} +1 -1
  81. package/dist/{chunk-6VJAOYIG.js → chunk-RNT4GCP3.js} +12 -12
  82. package/dist/{chunk-6VJAOYIG.js.map → chunk-RNT4GCP3.js.map} +1 -1
  83. package/dist/{chunk-AED7KSBM.js → chunk-RRG2HJMY.js} +6 -6
  84. package/dist/{chunk-AED7KSBM.js.map → chunk-RRG2HJMY.js.map} +1 -1
  85. package/dist/{chunk-PR7NSNQG.js → chunk-RY2BSDOR.js} +4 -4
  86. package/dist/{chunk-PR7NSNQG.js.map → chunk-RY2BSDOR.js.map} +1 -1
  87. package/dist/{chunk-BDHKGP3S.js → chunk-SCCMKFSR.js} +21 -21
  88. package/dist/{chunk-BDHKGP3S.js.map → chunk-SCCMKFSR.js.map} +1 -1
  89. package/dist/{chunk-MF47DACR.js → chunk-UGSA7FSW.js} +7 -7
  90. package/dist/{chunk-MF47DACR.js.map → chunk-UGSA7FSW.js.map} +1 -1
  91. package/dist/{chunk-FLZGOGER.js → chunk-URNYB2CC.js} +4 -4
  92. package/dist/{chunk-FLZGOGER.js.map → chunk-URNYB2CC.js.map} +1 -1
  93. package/dist/{chunk-6WHDXMTW.js → chunk-UXH6EHK6.js} +3 -3
  94. package/dist/{chunk-6WHDXMTW.js.map → chunk-UXH6EHK6.js.map} +1 -1
  95. package/dist/{chunk-2AFEQOCJ.js → chunk-YEVKV2NP.js} +3 -3
  96. package/dist/{chunk-2AFEQOCJ.js.map → chunk-YEVKV2NP.js.map} +1 -1
  97. package/dist/{chunk-UTSZKJAL.js → chunk-ZZN5JNVJ.js} +6 -6
  98. package/dist/{chunk-UTSZKJAL.js.map → chunk-ZZN5JNVJ.js.map} +1 -1
  99. package/dist/cnaes.js +1 -1
  100. package/dist/cnh.js +3 -3
  101. package/dist/cnpj.js +4 -4
  102. package/dist/compare.js +21 -21
  103. package/dist/cpf.js +4 -4
  104. package/dist/data-catalog.js +19 -17
  105. package/dist/data-catalog.js.map +1 -1
  106. package/dist/detect.js +18 -18
  107. package/dist/diff.js +21 -21
  108. package/dist/generate.js +28 -28
  109. package/dist/incoterms.js +1 -1
  110. package/dist/index.js +43 -43
  111. package/dist/mask.js +27 -27
  112. package/dist/moedas.js +1 -1
  113. package/dist/natureza-juridica.js +1 -1
  114. package/dist/nbs.js +1 -1
  115. package/dist/ncm.js +1 -1
  116. package/dist/paises-bacen.js +1 -1
  117. package/dist/pix.js +7 -7
  118. package/dist/pncp-reference.js +1 -1
  119. package/dist/portos.js +1 -1
  120. package/dist/renavam.js +3 -3
  121. package/dist/sanitize.js +16 -16
  122. package/dist/telefone.js +3 -3
  123. package/dist/titulo-eleitor.js +3 -3
  124. package/dist/transparencia-snapshots.js +2 -2
  125. package/dist/transparencia-snapshots.js.map +1 -1
  126. package/package.json +6 -1
@@ -1,4 +1,4 @@
1
- import { validateTelefone, TELEFONE_CELULAR_MASK_PATTERN, TELEFONE_FIXO_MASK_PATTERN } from './chunk-QZNAGWZB.js';
1
+ import { validateTelefone, TELEFONE_CELULAR_MASK_PATTERN, TELEFONE_FIXO_MASK_PATTERN } from './chunk-NWXFSSGF.js';
2
2
 
3
3
  // src/core/telefone/mask.ts
4
4
  function applyTelefoneMask(canonical, tipo) {
@@ -20,5 +20,5 @@ function formatTelefone(input) {
20
20
  }
21
21
 
22
22
  export { formatTelefone };
23
- //# sourceMappingURL=chunk-FX6JEBWO.js.map
24
- //# sourceMappingURL=chunk-FX6JEBWO.js.map
23
+ //# sourceMappingURL=chunk-FL4UUTAC.js.map
24
+ //# sourceMappingURL=chunk-FL4UUTAC.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/telefone/mask.ts","../src/format/telefone.ts"],"names":[],"mappings":";;;AAOO,SAAS,iBAAA,CAAkB,WAAmB,IAAA,EAA4B;AAC/E,EAAA,MAAM,OAAA,GAAU,IAAA,KAAS,SAAA,GAAY,6BAAA,GAAgC,0BAAA;AACrE,EAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,IAAA,CAAK,SAAS,CAAA;AACpC,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,0BAAA,EAA6B,IAAI,CAAA,qBAAA,CAAuB,CAAA;AAAA,EAC1E;AACA,EAAA,OAAO,CAAA,CAAA,EAAI,KAAA,CAAM,CAAC,CAAC,CAAA,EAAA,EAAK,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA,EAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAC9C;;;ACVO,SAAS,eAAe,KAAA,EAA6B;AAC1D,EAAA,MAAM,MAAA,GAAS,iBAAiB,KAAK,CAAA;AACrC,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AACA,EAAA,OAAO,EAAE,IAAI,IAAA,EAAM,SAAA,EAAW,kBAAkB,MAAA,CAAO,KAAA,EAAO,MAAA,CAAO,IAAI,CAAA,EAAE;AAC7E","file":"chunk-FX6JEBWO.js","sourcesContent":["import {\n TELEFONE_CELULAR_MASK_PATTERN,\n TELEFONE_FIXO_MASK_PATTERN,\n} from './constants.js';\nimport type { TelefoneTipo } from '../../types/validation-result.js';\n\n/** Mask (DD) 9XXXX-XXXX or (DD) XXXX-XXXX per Anatel E.164 layout. */\nexport function applyTelefoneMask(canonical: string, tipo: TelefoneTipo): string {\n const pattern = tipo === 'celular' ? TELEFONE_CELULAR_MASK_PATTERN : TELEFONE_FIXO_MASK_PATTERN;\n const match = pattern.exec(canonical);\n if (!match) {\n throw new Error(`Telephone must have valid ${tipo} length to apply mask`);\n }\n return `(${match[1]}) ${match[2]}-${match[3]}`;\n}\n","import { applyTelefoneMask } from '../core/telefone/mask.js';\nimport { validateTelefone } from '../core/telefone/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatTelefone(input: string): FormatResult {\n const result = validateTelefone(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyTelefoneMask(result.value, result.tipo) };\n}\n"]}
1
+ {"version":3,"sources":["../src/core/telefone/mask.ts","../src/format/telefone.ts"],"names":[],"mappings":";;;AAOO,SAAS,iBAAA,CAAkB,WAAmB,IAAA,EAA4B;AAC/E,EAAA,MAAM,OAAA,GAAU,IAAA,KAAS,SAAA,GAAY,6BAAA,GAAgC,0BAAA;AACrE,EAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,IAAA,CAAK,SAAS,CAAA;AACpC,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,0BAAA,EAA6B,IAAI,CAAA,qBAAA,CAAuB,CAAA;AAAA,EAC1E;AACA,EAAA,OAAO,CAAA,CAAA,EAAI,KAAA,CAAM,CAAC,CAAC,CAAA,EAAA,EAAK,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA,EAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAC9C;;;ACVO,SAAS,eAAe,KAAA,EAA6B;AAC1D,EAAA,MAAM,MAAA,GAAS,iBAAiB,KAAK,CAAA;AACrC,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AACA,EAAA,OAAO,EAAE,IAAI,IAAA,EAAM,SAAA,EAAW,kBAAkB,MAAA,CAAO,KAAA,EAAO,MAAA,CAAO,IAAI,CAAA,EAAE;AAC7E","file":"chunk-FL4UUTAC.js","sourcesContent":["import {\n TELEFONE_CELULAR_MASK_PATTERN,\n TELEFONE_FIXO_MASK_PATTERN,\n} from './constants.js';\nimport type { TelefoneTipo } from '../../types/validation-result.js';\n\n/** Mask (DD) 9XXXX-XXXX or (DD) XXXX-XXXX per Anatel E.164 layout. */\nexport function applyTelefoneMask(canonical: string, tipo: TelefoneTipo): string {\n const pattern = tipo === 'celular' ? TELEFONE_CELULAR_MASK_PATTERN : TELEFONE_FIXO_MASK_PATTERN;\n const match = pattern.exec(canonical);\n if (!match) {\n throw new Error(`Telephone must have valid ${tipo} length to apply mask`);\n }\n return `(${match[1]}) ${match[2]}-${match[3]}`;\n}\n","import { applyTelefoneMask } from '../core/telefone/mask.js';\nimport { validateTelefone } from '../core/telefone/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatTelefone(input: string): FormatResult {\n const result = validateTelefone(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyTelefoneMask(result.value, result.tipo) };\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { weightedSum } from './chunk-OTZHMJYE.js';
2
1
  import { stripRenavam } from './chunk-YYHS5WQN.js';
2
+ import { weightedSum } from './chunk-OTZHMJYE.js';
3
3
  import { brandRenavam } from './chunk-4NFEM2SU.js';
4
4
 
5
5
  // src/core/renavam/constants.ts
@@ -82,5 +82,5 @@ function validateRenavam(input) {
82
82
  }
83
83
 
84
84
  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_NUMERIC_PATTERN, RENAVAM_OFFICIAL_SOURCE_URL, RENAVAM_SENATRAN_CONSULTA_URL, computeRenavamCheckDigit, isValidRenavam, validateRenavam };
85
- //# sourceMappingURL=chunk-24JBIV3A.js.map
86
- //# sourceMappingURL=chunk-24JBIV3A.js.map
85
+ //# sourceMappingURL=chunk-GAU2MGUQ.js.map
86
+ //# sourceMappingURL=chunk-GAU2MGUQ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/renavam/constants.ts","../src/core/renavam/check-digits.ts","../src/core/renavam/index.ts"],"names":[],"mappings":"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","file":"chunk-24JBIV3A.js","sourcesContent":["/**\n * RENAVAM constants — modulo 11, peso 9 (DENATRAN / SENATRAN).\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/arquivos-senatran/portarias/2013/portaria0272013.pdf\n * @see https://www.gov.br/pt-br/servicos/consultar-dados-de-veiculo-na-base-renavam\n * @see https://siga0984.wordpress.com/2019/05/01/algoritmos-validacao-de-renavam/ — algorithm cross-check (AdvPL)\n * @see https://www.geravalida.com.br/gerador-de-renavam — implementation cross-check\n * @see https://geradorfacil.com/geradores/renavam — implementation cross-check\n */\nexport const RENAVAM_DV_WEIGHTS = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const RENAVAM_LENGTH = 11;\nexport const RENAVAM_BASE_LENGTH = 10;\nexport const RENAVAM_NUMERIC_PATTERN = /^\\d{11}$/;\n\n/** Golden primary — DV walkthrough: base `6397779110` → DV `4`. */\nexport const RENAVAM_GOLDEN_PRIMARY = '63977791104';\nexport const RENAVAM_GOLDEN_SECONDARY = '72176426415';\nexport const RENAVAM_GOLDEN_LEADING_ZEROS = '00207104255';\nexport const RENAVAM_GOLDEN_DV_ZERO = '12345678900';\n\n/** Optional dash before check digit — accepted on input via strip, never emitted by format. */\nexport const RENAVAM_GOLDEN_DASH_INPUT = '7217642641-5';\n\nexport const RENAVAM_OFFICIAL_SOURCE_URL =\n 'https://www.gov.br/transportes/pt-br/assuntos/transito/arquivos-senatran/portarias/2013/portaria0272013.pdf';\n\n/** SENATRAN online vehicle lookup — requires RENAVAM + plate + owner CPF/CNPJ. */\nexport const RENAVAM_SENATRAN_CONSULTA_URL =\n 'https://www.gov.br/pt-br/servicos/consultar-dados-de-veiculo-na-base-renavam';\n","/**\n * RENAVAM check digit — modulo 11, peso 9 (Portaria DENATRAN 27/2013).\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/arquivos-senatran/portarias/2013/portaria0272013.pdf\n * @see https://siga0984.wordpress.com/2019/05/01/algoritmos-validacao-de-renavam/ — algorithm cross-check (AdvPL)\n */\nimport { weightedSum } from '../cnpj/modulo11.js';\nimport { RENAVAM_DV_WEIGHTS } from './constants.js';\n\nfunction digitValue(char: string): number {\n return Number(char);\n}\n\nexport function computeRenavamWeightedSum(base: string): number {\n const values = base.split('').map(digitValue);\n return weightedSum(values, RENAVAM_DV_WEIGHTS);\n}\n\nexport function computeRenavamCheckDigit(base: string): number {\n const remainder = computeRenavamWeightedSum(base) % 11;\n let dv = 11 - remainder;\n if (dv > 9) {\n dv = 0;\n }\n return dv;\n}\n","/**\n * RENAVAM validation — modulo 11, peso 9 (DENATRAN / SENATRAN).\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/arquivos-senatran/portarias/2013/portaria0272013.pdf\n * @see https://www.gov.br/pt-br/servicos/consultar-dados-de-veiculo-na-base-renavam\n */\nimport { stripRenavam } from '../../strip/index.js';\nimport type { Renavam, ValidationResult } from '../../types/validation-result.js';\nimport { brandRenavam } from '../../types/validation-result.js';\nimport { computeRenavamCheckDigit } from './check-digits.js';\nimport { RENAVAM_BASE_LENGTH, RENAVAM_LENGTH } from './constants.js';\n\nexport {\n RENAVAM_BASE_LENGTH,\n RENAVAM_DV_WEIGHTS,\n RENAVAM_GOLDEN_DASH_INPUT,\n RENAVAM_GOLDEN_DV_ZERO,\n RENAVAM_GOLDEN_LEADING_ZEROS,\n RENAVAM_GOLDEN_PRIMARY,\n RENAVAM_GOLDEN_SECONDARY,\n RENAVAM_LENGTH,\n RENAVAM_NUMERIC_PATTERN,\n RENAVAM_OFFICIAL_SOURCE_URL,\n RENAVAM_SENATRAN_CONSULTA_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 isValidRenavamChecksum(stripped: string): boolean {\n const base = stripped.slice(0, RENAVAM_BASE_LENGTH);\n const expected = String(computeRenavamCheckDigit(base));\n return stripped.charAt(RENAVAM_BASE_LENGTH) === expected;\n}\n\nfunction validateStructure(input: string, stripped: string): FailedResult | null {\n if (stripped.length === 0) {\n return failure('EMPTY_INPUT', 'RENAVAM input is empty');\n }\n\n const withoutMask = input.replace(/-/g, '');\n if (/[^0-9]/.test(withoutMask)) {\n return failure('INVALID_CHARACTER', 'RENAVAM contains invalid characters');\n }\n\n if (stripped.length !== RENAVAM_LENGTH) {\n return failure('INVALID_LENGTH', `RENAVAM must have ${RENAVAM_LENGTH} digits after normalization`);\n }\n\n if (hasRepeatedDigits(stripped)) {\n return failure('KNOWN_INVALID_PATTERN', 'RENAVAM with all identical digits is invalid');\n }\n\n return null;\n}\n\nexport function isValidRenavam(input: string): boolean {\n return validateRenavam(input).ok;\n}\n\nexport function validateRenavam(input: string): ValidationResult<Renavam> {\n const stripped = stripRenavam(input);\n const structural = validateStructure(input, stripped);\n if (structural) {\n return structural;\n }\n\n if (isValidRenavamChecksum(stripped)) {\n return { ok: true, value: brandRenavam(stripped), format: 'numeric' };\n }\n\n return failure('INVALID_CHECK_DIGIT', 'RENAVAM check digit is invalid');\n}\n"]}
1
+ {"version":3,"sources":["../src/core/renavam/constants.ts","../src/core/renavam/check-digits.ts","../src/core/renavam/index.ts"],"names":[],"mappings":"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","file":"chunk-GAU2MGUQ.js","sourcesContent":["/**\n * RENAVAM constants — modulo 11, peso 9 (DENATRAN / SENATRAN).\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/arquivos-senatran/portarias/2013/portaria0272013.pdf\n * @see https://www.gov.br/pt-br/servicos/consultar-dados-de-veiculo-na-base-renavam\n * @see https://siga0984.wordpress.com/2019/05/01/algoritmos-validacao-de-renavam/ — algorithm cross-check (AdvPL)\n * @see https://www.geravalida.com.br/gerador-de-renavam — implementation cross-check\n * @see https://geradorfacil.com/geradores/renavam — implementation cross-check\n */\nexport const RENAVAM_DV_WEIGHTS = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const RENAVAM_LENGTH = 11;\nexport const RENAVAM_BASE_LENGTH = 10;\nexport const RENAVAM_NUMERIC_PATTERN = /^\\d{11}$/;\n\n/** Golden primary — DV walkthrough: base `6397779110` → DV `4`. */\nexport const RENAVAM_GOLDEN_PRIMARY = '63977791104';\nexport const RENAVAM_GOLDEN_SECONDARY = '72176426415';\nexport const RENAVAM_GOLDEN_LEADING_ZEROS = '00207104255';\nexport const RENAVAM_GOLDEN_DV_ZERO = '12345678900';\n\n/** Optional dash before check digit — accepted on input via strip, never emitted by format. */\nexport const RENAVAM_GOLDEN_DASH_INPUT = '7217642641-5';\n\nexport const RENAVAM_OFFICIAL_SOURCE_URL =\n 'https://www.gov.br/transportes/pt-br/assuntos/transito/arquivos-senatran/portarias/2013/portaria0272013.pdf';\n\n/** SENATRAN online vehicle lookup — requires RENAVAM + plate + owner CPF/CNPJ. */\nexport const RENAVAM_SENATRAN_CONSULTA_URL =\n 'https://www.gov.br/pt-br/servicos/consultar-dados-de-veiculo-na-base-renavam';\n","/**\n * RENAVAM check digit — modulo 11, peso 9 (Portaria DENATRAN 27/2013).\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/arquivos-senatran/portarias/2013/portaria0272013.pdf\n * @see https://siga0984.wordpress.com/2019/05/01/algoritmos-validacao-de-renavam/ — algorithm cross-check (AdvPL)\n */\nimport { weightedSum } from '../cnpj/modulo11.js';\nimport { RENAVAM_DV_WEIGHTS } from './constants.js';\n\nfunction digitValue(char: string): number {\n return Number(char);\n}\n\nexport function computeRenavamWeightedSum(base: string): number {\n const values = base.split('').map(digitValue);\n return weightedSum(values, RENAVAM_DV_WEIGHTS);\n}\n\nexport function computeRenavamCheckDigit(base: string): number {\n const remainder = computeRenavamWeightedSum(base) % 11;\n let dv = 11 - remainder;\n if (dv > 9) {\n dv = 0;\n }\n return dv;\n}\n","/**\n * RENAVAM validation — modulo 11, peso 9 (DENATRAN / SENATRAN).\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/arquivos-senatran/portarias/2013/portaria0272013.pdf\n * @see https://www.gov.br/pt-br/servicos/consultar-dados-de-veiculo-na-base-renavam\n */\nimport { stripRenavam } from '../../strip/index.js';\nimport type { Renavam, ValidationResult } from '../../types/validation-result.js';\nimport { brandRenavam } from '../../types/validation-result.js';\nimport { computeRenavamCheckDigit } from './check-digits.js';\nimport { RENAVAM_BASE_LENGTH, RENAVAM_LENGTH } from './constants.js';\n\nexport {\n RENAVAM_BASE_LENGTH,\n RENAVAM_DV_WEIGHTS,\n RENAVAM_GOLDEN_DASH_INPUT,\n RENAVAM_GOLDEN_DV_ZERO,\n RENAVAM_GOLDEN_LEADING_ZEROS,\n RENAVAM_GOLDEN_PRIMARY,\n RENAVAM_GOLDEN_SECONDARY,\n RENAVAM_LENGTH,\n RENAVAM_NUMERIC_PATTERN,\n RENAVAM_OFFICIAL_SOURCE_URL,\n RENAVAM_SENATRAN_CONSULTA_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 isValidRenavamChecksum(stripped: string): boolean {\n const base = stripped.slice(0, RENAVAM_BASE_LENGTH);\n const expected = String(computeRenavamCheckDigit(base));\n return stripped.charAt(RENAVAM_BASE_LENGTH) === expected;\n}\n\nfunction validateStructure(input: string, stripped: string): FailedResult | null {\n if (stripped.length === 0) {\n return failure('EMPTY_INPUT', 'RENAVAM input is empty');\n }\n\n const withoutMask = input.replace(/-/g, '');\n if (/[^0-9]/.test(withoutMask)) {\n return failure('INVALID_CHARACTER', 'RENAVAM contains invalid characters');\n }\n\n if (stripped.length !== RENAVAM_LENGTH) {\n return failure('INVALID_LENGTH', `RENAVAM must have ${RENAVAM_LENGTH} digits after normalization`);\n }\n\n if (hasRepeatedDigits(stripped)) {\n return failure('KNOWN_INVALID_PATTERN', 'RENAVAM with all identical digits is invalid');\n }\n\n return null;\n}\n\nexport function isValidRenavam(input: string): boolean {\n return validateRenavam(input).ok;\n}\n\nexport function validateRenavam(input: string): ValidationResult<Renavam> {\n const stripped = stripRenavam(input);\n const structural = validateStructure(input, stripped);\n if (structural) {\n return structural;\n }\n\n if (isValidRenavamChecksum(stripped)) {\n return { ok: true, value: brandRenavam(stripped), format: 'numeric' };\n }\n\n return failure('INVALID_CHECK_DIGIT', 'RENAVAM check digit is invalid');\n}\n"]}
@@ -8,8 +8,8 @@ var metadata_default = {
8
8
  "https://api.portaldatransparencia.gov.br/v3/api-docs",
9
9
  "https://portaldatransparencia.gov.br/"
10
10
  ],
11
- capturadoEm: "2026-06-23",
12
- atualizadoEm: "2026-06-23T19:08:25.007Z",
11
+ capturadoEm: "2026-06-24",
12
+ atualizadoEm: "2026-06-24T15:43:03.237Z",
13
13
  contagens: {
14
14
  endpoints: 8,
15
15
  queryAdapter: 7
@@ -23,11 +23,11 @@ var metadata_default = {
23
23
  verificacao: {
24
24
  agendamento: "diario",
25
25
  workflow: "data-refresh-bot.yml",
26
- ultimaExecucao: "2026-06-23T19:08:25.007Z"
26
+ ultimaExecucao: "2026-06-24T15:43:03.237Z"
27
27
  },
28
28
  documentacao: "docs/OFFICIAL-SOURCES.md#portal-transparencia"
29
29
  };
30
30
 
31
31
  export { metadata_default };
32
- //# sourceMappingURL=chunk-ZJQ7DRH4.js.map
33
- //# sourceMappingURL=chunk-ZJQ7DRH4.js.map
32
+ //# sourceMappingURL=chunk-GFYWUMYH.js.map
33
+ //# sourceMappingURL=chunk-GFYWUMYH.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/transparencia-snapshots/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,yBAAA;AAAA,EACN,IAAA,EAAQ,8CAAA;AAAA,EACR,KAAA,EAAS,4FAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,gEAAA;AAAA,IACA,sDAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,CAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-ZJQ7DRH4.js","sourcesContent":["{\n \"id\": \"transparencia-snapshots\",\n \"nome\": \"Portal da Transparência endpoint registry\",\n \"fonte\": \"CGU Portal da Transparência — Swagger audit (query endpoints; no bulk embed in v1)\",\n \"endpoints\": [\n \"https://api.portaldatransparencia.gov.br/swagger-ui/index.html\",\n \"https://api.portaldatransparencia.gov.br/v3/api-docs\",\n \"https://portaldatransparencia.gov.br/\"\n ],\n \"capturadoEm\": \"2026-06-23\",\n \"atualizadoEm\": \"2026-06-23T19:08:25.007Z\",\n \"contagens\": {\n \"endpoints\": 8,\n \"queryAdapter\": 7\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-06-23\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-23T19:08:25.007Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#portal-transparencia\"\n}\n"]}
1
+ {"version":3,"sources":["../src/transparencia-snapshots/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,yBAAA;AAAA,EACN,IAAA,EAAQ,8CAAA;AAAA,EACR,KAAA,EAAS,4FAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,gEAAA;AAAA,IACA,sDAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,CAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-GFYWUMYH.js","sourcesContent":["{\n \"id\": \"transparencia-snapshots\",\n \"nome\": \"Portal da Transparência endpoint registry\",\n \"fonte\": \"CGU Portal da Transparência — Swagger audit (query endpoints; no bulk embed in v1)\",\n \"endpoints\": [\n \"https://api.portaldatransparencia.gov.br/swagger-ui/index.html\",\n \"https://api.portaldatransparencia.gov.br/v3/api-docs\",\n \"https://portaldatransparencia.gov.br/\"\n ],\n \"capturadoEm\": \"2026-06-24\",\n \"atualizadoEm\": \"2026-06-24T15:43:03.237Z\",\n \"contagens\": {\n \"endpoints\": 8,\n \"queryAdapter\": 7\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-06-23\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-24T15:43:03.237Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#portal-transparencia\"\n}\n"]}
@@ -1,22 +1,22 @@
1
- import { stripForType } from './chunk-2AFEQOCJ.js';
1
+ import { stripForType } from './chunk-YEVKV2NP.js';
2
2
  import { validateRg } from './chunk-G557DGIX.js';
3
3
  import { validateProcessoJudicial } from './chunk-VE2XZSKP.js';
4
- import { validateRenavam } from './chunk-24JBIV3A.js';
5
- import { validateTelefone } from './chunk-QZNAGWZB.js';
6
- import { validateTituloEleitor } from './chunk-26MSDS43.js';
4
+ import { validateRenavam } from './chunk-GAU2MGUQ.js';
5
+ import { validateTelefone } from './chunk-NWXFSSGF.js';
6
+ import { validateTituloEleitor } from './chunk-PN4XUBLV.js';
7
7
  import { validatePisPasep } from './chunk-ULNZHOMA.js';
8
8
  import { validatePlaca } from './chunk-2JSOXG2M.js';
9
9
  import { validateInscricaoEstadual } from './chunk-P3EJRH4P.js';
10
- import { validateNfeChave } from './chunk-IJ2DAVSD.js';
11
10
  import { validateIeSpRural } from './chunk-TAOFFAG3.js';
12
- import { validateCnh } from './chunk-A5UHVGRB.js';
11
+ import { validateNfeChave } from './chunk-IJ2DAVSD.js';
12
+ import { validateCep } from './chunk-F7G4ISQB.js';
13
+ import { validateCnh } from './chunk-EOXFX7MM.js';
13
14
  import { validateBoleto } from './chunk-3DLNIUBY.js';
14
- import { validateBrCode } from './chunk-72EZ2VUO.js';
15
- import { validatePixKey } from './chunk-UTSZKJAL.js';
16
- import { validateCnpj } from './chunk-RSJK46ZE.js';
17
- import { validateCpf } from './chunk-LBAWZ4EV.js';
15
+ import { validateBrCode } from './chunk-37IHHQKK.js';
16
+ import { validatePixKey } from './chunk-ZZN5JNVJ.js';
17
+ import { validateCnpj } from './chunk-2M4RVHRO.js';
18
+ import { validateCpf } from './chunk-HCH6G5XY.js';
18
19
  import { validateCartaoCredito } from './chunk-VDCITFZG.js';
19
- import { validateCep } from './chunk-EEFQYVLF.js';
20
20
 
21
21
  // src/platform/normalize.ts
22
22
  var SANITIZABLE_PLATFORM_TYPES = /* @__PURE__ */ new Set([
@@ -142,5 +142,5 @@ function tryValidatedCanonical(value, type, uf) {
142
142
  }
143
143
 
144
144
  export { normalizeForPlatform };
145
- //# sourceMappingURL=chunk-4COFDYBY.js.map
146
- //# sourceMappingURL=chunk-4COFDYBY.js.map
145
+ //# sourceMappingURL=chunk-GVQMJ45R.js.map
146
+ //# sourceMappingURL=chunk-GVQMJ45R.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/platform/normalize.ts"],"names":[],"mappings":"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","file":"chunk-4COFDYBY.js","sourcesContent":["/**\n * Canonical normalization for platform compare/diff (BR-PLATFORM-001).\n * @see docs/OFFICIAL-SOURCES.md\n */\nimport { validateBrCode } from '../core/brcode/index.js';\nimport { validateBoleto } from '../core/boleto/index.js';\nimport { validateCartaoCredito } from '../core/cartao-credito/index.js';\nimport { validateCep } from '../core/cep/index.js';\nimport { validateCnh } from '../core/cnh/index.js';\nimport { validateCnpj } from '../core/cnpj/index.js';\nimport { validateCpf } from '../core/cpf/index.js';\nimport { validateInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { validateIeSpRural } from '../core/inscricao-estadual/sp-rural.js';\nimport { validateNfeChave } from '../core/nfe-chave/index.js';\nimport { validatePisPasep } from '../core/pis-pasep/index.js';\nimport { validatePlaca } from '../core/placa/index.js';\nimport { validatePixKey } from '../core/pix/index.js';\nimport { validateRenavam } from '../core/renavam/index.js';\nimport { validateTelefone } from '../core/telefone/index.js';\nimport { validateProcessoJudicial } from '../core/processo-judicial/index.js';\nimport { validateRg } from '../core/rg/index.js';\nimport type { RgUfCode } from '../types/validation-result.js';\nimport { validateTituloEleitor } from '../core/titulo-eleitor/index.js';\nimport { stripForType } from '../sanitize/fixes.js';\nimport type { SanitizableDocumentType } from '../sanitize/index.js';\nimport type { UfCode } from '../types/validation-result.js';\nimport type { PlatformDocumentType, PlatformOptions } from './types.js';\n\nconst SANITIZABLE_PLATFORM_TYPES = new Set<PlatformDocumentType>([\n 'cpf',\n 'cnpj',\n 'cep',\n 'placa',\n 'pis-pasep',\n 'telefone',\n 'cnh',\n 'renavam',\n 'titulo-eleitor',\n 'processo-judicial',\n 'rg',\n 'nfe-chave',\n 'boleto',\n 'cartao-credito',\n 'inscricao-estadual',\n 'inscricao-estadual-produtor-rural',\n]);\n\nfunction isSanitizablePlatformType(type: PlatformDocumentType): type is SanitizableDocumentType {\n return SANITIZABLE_PLATFORM_TYPES.has(type);\n}\n\nfunction stripForPlatform(raw: string, type: PlatformDocumentType): string {\n if (type === 'pix' || type === 'brcode') {\n return raw;\n }\n if (isSanitizablePlatformType(type)) {\n return stripForType(raw, type);\n }\n return raw;\n}\n\nexport function normalizeForPlatform(\n raw: string,\n type: PlatformDocumentType,\n options: PlatformOptions = {},\n): string {\n const trimmed = raw.trim();\n const stripped = stripForPlatform(trimmed, type);\n const validated = tryValidatedCanonical(stripped, type, options.uf);\n return validated ?? stripped;\n}\n\nfunction tryValidatedCanonical(\n value: string,\n type: PlatformDocumentType,\n uf?: UfCode,\n): string | null {\n switch (type) {\n case 'cpf': {\n const result = validateCpf(value);\n return result.ok ? result.value : null;\n }\n case 'cnpj': {\n const result = validateCnpj(value);\n return result.ok ? result.value : null;\n }\n case 'cep': {\n const result = validateCep(value);\n return result.ok ? result.value : null;\n }\n case 'placa': {\n const result = validatePlaca(value);\n return result.ok ? result.value : null;\n }\n case 'pis-pasep': {\n const result = validatePisPasep(value);\n return result.ok ? result.value : null;\n }\n case 'telefone': {\n const result = validateTelefone(value);\n return result.ok ? result.value : null;\n }\n case 'cnh': {\n const result = validateCnh(value);\n return result.ok ? result.value : null;\n }\n case 'renavam': {\n const result = validateRenavam(value);\n return result.ok ? result.value : null;\n }\n case 'titulo-eleitor': {\n const result = validateTituloEleitor(value);\n return result.ok ? result.value : null;\n }\n case 'processo-judicial': {\n const result = validateProcessoJudicial(value);\n return result.ok ? result.value : null;\n }\n case 'rg': {\n if (!uf) {\n return null;\n }\n const result = validateRg(value, { uf: uf as RgUfCode });\n return result.ok ? result.value : null;\n }\n case 'nfe-chave': {\n const result = validateNfeChave(value);\n return result.ok ? result.value : null;\n }\n case 'boleto': {\n const result = validateBoleto(value);\n return result.ok ? result.value : null;\n }\n case 'cartao-credito': {\n const result = validateCartaoCredito(value);\n return result.ok ? result.value : null;\n }\n case 'inscricao-estadual': {\n if (!uf) {\n return null;\n }\n const result = validateInscricaoEstadual(value, { uf });\n return result.ok ? result.value : null;\n }\n case 'inscricao-estadual-produtor-rural': {\n const result = validateIeSpRural(value);\n return result.ok ? result.value : null;\n }\n case 'pix': {\n const result = validatePixKey(value);\n return result.ok ? result.value : null;\n }\n case 'brcode': {\n const result = validateBrCode(value);\n return result.ok ? result.value : null;\n }\n default: {\n return null;\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/platform/normalize.ts"],"names":[],"mappings":"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","file":"chunk-GVQMJ45R.js","sourcesContent":["/**\n * Canonical normalization for platform compare/diff (BR-PLATFORM-001).\n * @see docs/OFFICIAL-SOURCES.md\n */\nimport { validateBrCode } from '../core/brcode/index.js';\nimport { validateBoleto } from '../core/boleto/index.js';\nimport { validateCartaoCredito } from '../core/cartao-credito/index.js';\nimport { validateCep } from '../core/cep/index.js';\nimport { validateCnh } from '../core/cnh/index.js';\nimport { validateCnpj } from '../core/cnpj/index.js';\nimport { validateCpf } from '../core/cpf/index.js';\nimport { validateInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { validateIeSpRural } from '../core/inscricao-estadual/sp-rural.js';\nimport { validateNfeChave } from '../core/nfe-chave/index.js';\nimport { validatePisPasep } from '../core/pis-pasep/index.js';\nimport { validatePlaca } from '../core/placa/index.js';\nimport { validatePixKey } from '../core/pix/index.js';\nimport { validateRenavam } from '../core/renavam/index.js';\nimport { validateTelefone } from '../core/telefone/index.js';\nimport { validateProcessoJudicial } from '../core/processo-judicial/index.js';\nimport { validateRg } from '../core/rg/index.js';\nimport type { RgUfCode } from '../types/validation-result.js';\nimport { validateTituloEleitor } from '../core/titulo-eleitor/index.js';\nimport { stripForType } from '../sanitize/fixes.js';\nimport type { SanitizableDocumentType } from '../sanitize/index.js';\nimport type { UfCode } from '../types/validation-result.js';\nimport type { PlatformDocumentType, PlatformOptions } from './types.js';\n\nconst SANITIZABLE_PLATFORM_TYPES = new Set<PlatformDocumentType>([\n 'cpf',\n 'cnpj',\n 'cep',\n 'placa',\n 'pis-pasep',\n 'telefone',\n 'cnh',\n 'renavam',\n 'titulo-eleitor',\n 'processo-judicial',\n 'rg',\n 'nfe-chave',\n 'boleto',\n 'cartao-credito',\n 'inscricao-estadual',\n 'inscricao-estadual-produtor-rural',\n]);\n\nfunction isSanitizablePlatformType(type: PlatformDocumentType): type is SanitizableDocumentType {\n return SANITIZABLE_PLATFORM_TYPES.has(type);\n}\n\nfunction stripForPlatform(raw: string, type: PlatformDocumentType): string {\n if (type === 'pix' || type === 'brcode') {\n return raw;\n }\n if (isSanitizablePlatformType(type)) {\n return stripForType(raw, type);\n }\n return raw;\n}\n\nexport function normalizeForPlatform(\n raw: string,\n type: PlatformDocumentType,\n options: PlatformOptions = {},\n): string {\n const trimmed = raw.trim();\n const stripped = stripForPlatform(trimmed, type);\n const validated = tryValidatedCanonical(stripped, type, options.uf);\n return validated ?? stripped;\n}\n\nfunction tryValidatedCanonical(\n value: string,\n type: PlatformDocumentType,\n uf?: UfCode,\n): string | null {\n switch (type) {\n case 'cpf': {\n const result = validateCpf(value);\n return result.ok ? result.value : null;\n }\n case 'cnpj': {\n const result = validateCnpj(value);\n return result.ok ? result.value : null;\n }\n case 'cep': {\n const result = validateCep(value);\n return result.ok ? result.value : null;\n }\n case 'placa': {\n const result = validatePlaca(value);\n return result.ok ? result.value : null;\n }\n case 'pis-pasep': {\n const result = validatePisPasep(value);\n return result.ok ? result.value : null;\n }\n case 'telefone': {\n const result = validateTelefone(value);\n return result.ok ? result.value : null;\n }\n case 'cnh': {\n const result = validateCnh(value);\n return result.ok ? result.value : null;\n }\n case 'renavam': {\n const result = validateRenavam(value);\n return result.ok ? result.value : null;\n }\n case 'titulo-eleitor': {\n const result = validateTituloEleitor(value);\n return result.ok ? result.value : null;\n }\n case 'processo-judicial': {\n const result = validateProcessoJudicial(value);\n return result.ok ? result.value : null;\n }\n case 'rg': {\n if (!uf) {\n return null;\n }\n const result = validateRg(value, { uf: uf as RgUfCode });\n return result.ok ? result.value : null;\n }\n case 'nfe-chave': {\n const result = validateNfeChave(value);\n return result.ok ? result.value : null;\n }\n case 'boleto': {\n const result = validateBoleto(value);\n return result.ok ? result.value : null;\n }\n case 'cartao-credito': {\n const result = validateCartaoCredito(value);\n return result.ok ? result.value : null;\n }\n case 'inscricao-estadual': {\n if (!uf) {\n return null;\n }\n const result = validateInscricaoEstadual(value, { uf });\n return result.ok ? result.value : null;\n }\n case 'inscricao-estadual-produtor-rural': {\n const result = validateIeSpRural(value);\n return result.ok ? result.value : null;\n }\n case 'pix': {\n const result = validatePixKey(value);\n return result.ok ? result.value : null;\n }\n case 'brcode': {\n const result = validateBrCode(value);\n return result.ok ? result.value : null;\n }\n default: {\n return null;\n }\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { computeCheckDigit } from './chunk-OTZHMJYE.js';
2
1
  import { stripCpf } from './chunk-UCJPSJN5.js';
2
+ import { computeCheckDigit } from './chunk-OTZHMJYE.js';
3
3
  import { brandCpf } from './chunk-4NFEM2SU.js';
4
4
 
5
5
  // src/core/cpf/constants.ts
@@ -69,5 +69,5 @@ function validateCpf(input) {
69
69
  }
70
70
 
71
71
  export { CPF_BASE_LENGTH, CPF_DV1_WEIGHTS, CPF_DV2_WEIGHTS, CPF_GOLDEN_PRIMARY, CPF_GOLDEN_PRIMARY_MASKED, CPF_GOLDEN_SECONDARY, CPF_MASK_PATTERN, CPF_OFFICIAL_SOURCE_URL, isValidCpf, validateCpf };
72
- //# sourceMappingURL=chunk-LBAWZ4EV.js.map
73
- //# sourceMappingURL=chunk-LBAWZ4EV.js.map
72
+ //# sourceMappingURL=chunk-HCH6G5XY.js.map
73
+ //# sourceMappingURL=chunk-HCH6G5XY.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/cpf/constants.ts","../src/core/cpf/index.ts"],"names":[],"mappings":"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","file":"chunk-LBAWZ4EV.js","sourcesContent":["/**\n * CPF constants — modulo 11 weights (RFB standard).\n * @see https://www.gov.br/receitafederal/pt-br/assuntos/cpf\n * @see docs/use-cases/UC-001-validate-cpf.md — golden vector 12345678909\n */\nexport const CPF_DV1_WEIGHTS = [10, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const CPF_DV2_WEIGHTS = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const CPF_LENGTH = 11;\nexport const CPF_BASE_LENGTH = 9;\nexport const CPF_NUMERIC_PATTERN = /^\\d{11}$/;\nexport const CPF_MASK_PATTERN = /^(\\d{3})(\\d{3})(\\d{3})(\\d{2})$/;\n\nexport const CPF_GOLDEN_PRIMARY = '12345678909';\nexport const CPF_GOLDEN_SECONDARY = '11144477735';\nexport const CPF_GOLDEN_PRIMARY_MASKED = '123.456.789-09';\nexport const CPF_OFFICIAL_SOURCE_URL =\n 'https://www.gov.br/receitafederal/pt-br/assuntos/cpf';\n","/**\n * CPF validation — modulo 11 (RFB standard weights).\n * @see https://www.gov.br/receitafederal/pt-br/assuntos/cpf\n * @see docs/use-cases/UC-001-validate-cpf.md — golden vector 12345678909\n */\nimport { stripCpf } from '../../strip/cpf.js';\nimport type { ValidationResult } from '../../types/validation-result.js';\nimport { brandCpf } from '../../types/validation-result.js';\nimport { computeCheckDigit } from '../cnpj/modulo11.js';\nimport {\n CPF_BASE_LENGTH,\n CPF_DV1_WEIGHTS,\n CPF_DV2_WEIGHTS,\n CPF_LENGTH,\n} from './constants.js';\n\nexport {\n CPF_GOLDEN_PRIMARY,\n CPF_GOLDEN_PRIMARY_MASKED,\n CPF_GOLDEN_SECONDARY,\n CPF_OFFICIAL_SOURCE_URL,\n} from './constants.js';\n\ntype FailedResult = Extract<ValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message };\n}\n\nfunction digitValue(char: string): number {\n return Number(char);\n}\n\nfunction hasRepeatedDigits(value: string): boolean {\n const first = value[0];\n for (let i = 1; i < value.length; i++) {\n if (value[i] !== first) {\n return false;\n }\n }\n return true;\n}\n\nfunction isValidCpfChecksum(stripped: string): boolean {\n const base = stripped.slice(0, CPF_BASE_LENGTH);\n const dv1Expected = String(computeCheckDigit(base, CPF_DV1_WEIGHTS, digitValue));\n const dv2Expected = String(\n computeCheckDigit(base + dv1Expected, CPF_DV2_WEIGHTS, digitValue),\n );\n\n return stripped.slice(CPF_BASE_LENGTH) === dv1Expected + dv2Expected;\n}\n\nfunction validateStructure(input: string, stripped: string): FailedResult | null {\n if (stripped.length === 0) {\n return failure('EMPTY_INPUT', 'CPF input is empty');\n }\n\n const withoutMask = input.replace(/[.-]/g, '');\n if (/[^0-9]/.test(withoutMask)) {\n return failure('INVALID_CHARACTER', 'CPF contains invalid characters');\n }\n\n if (stripped.length !== CPF_LENGTH) {\n return failure('INVALID_LENGTH', `CPF must have ${CPF_LENGTH} digits after normalization`);\n }\n\n if (hasRepeatedDigits(stripped)) {\n return failure('KNOWN_INVALID_PATTERN', 'CPF with all identical digits is invalid');\n }\n\n return null;\n}\n\nexport function isValidCpf(input: string): boolean {\n return validateCpf(input).ok;\n}\n\nexport function validateCpf(input: string): ValidationResult {\n const stripped = stripCpf(input);\n const structural = validateStructure(input, stripped);\n if (structural) {\n return structural;\n }\n\n if (isValidCpfChecksum(stripped)) {\n return { ok: true, value: brandCpf(stripped), format: 'numeric' };\n }\n\n return failure('INVALID_CHECK_DIGIT', 'CPF check digits are invalid');\n}\n"]}
1
+ {"version":3,"sources":["../src/core/cpf/constants.ts","../src/core/cpf/index.ts"],"names":[],"mappings":"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","file":"chunk-HCH6G5XY.js","sourcesContent":["/**\n * CPF constants — modulo 11 weights (RFB standard).\n * @see https://www.gov.br/receitafederal/pt-br/assuntos/cpf\n * @see docs/use-cases/UC-001-validate-cpf.md — golden vector 12345678909\n */\nexport const CPF_DV1_WEIGHTS = [10, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const CPF_DV2_WEIGHTS = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const CPF_LENGTH = 11;\nexport const CPF_BASE_LENGTH = 9;\nexport const CPF_NUMERIC_PATTERN = /^\\d{11}$/;\nexport const CPF_MASK_PATTERN = /^(\\d{3})(\\d{3})(\\d{3})(\\d{2})$/;\n\nexport const CPF_GOLDEN_PRIMARY = '12345678909';\nexport const CPF_GOLDEN_SECONDARY = '11144477735';\nexport const CPF_GOLDEN_PRIMARY_MASKED = '123.456.789-09';\nexport const CPF_OFFICIAL_SOURCE_URL =\n 'https://www.gov.br/receitafederal/pt-br/assuntos/cpf';\n","/**\n * CPF validation — modulo 11 (RFB standard weights).\n * @see https://www.gov.br/receitafederal/pt-br/assuntos/cpf\n * @see docs/use-cases/UC-001-validate-cpf.md — golden vector 12345678909\n */\nimport { stripCpf } from '../../strip/cpf.js';\nimport type { ValidationResult } from '../../types/validation-result.js';\nimport { brandCpf } from '../../types/validation-result.js';\nimport { computeCheckDigit } from '../cnpj/modulo11.js';\nimport {\n CPF_BASE_LENGTH,\n CPF_DV1_WEIGHTS,\n CPF_DV2_WEIGHTS,\n CPF_LENGTH,\n} from './constants.js';\n\nexport {\n CPF_GOLDEN_PRIMARY,\n CPF_GOLDEN_PRIMARY_MASKED,\n CPF_GOLDEN_SECONDARY,\n CPF_OFFICIAL_SOURCE_URL,\n} from './constants.js';\n\ntype FailedResult = Extract<ValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message };\n}\n\nfunction digitValue(char: string): number {\n return Number(char);\n}\n\nfunction hasRepeatedDigits(value: string): boolean {\n const first = value[0];\n for (let i = 1; i < value.length; i++) {\n if (value[i] !== first) {\n return false;\n }\n }\n return true;\n}\n\nfunction isValidCpfChecksum(stripped: string): boolean {\n const base = stripped.slice(0, CPF_BASE_LENGTH);\n const dv1Expected = String(computeCheckDigit(base, CPF_DV1_WEIGHTS, digitValue));\n const dv2Expected = String(\n computeCheckDigit(base + dv1Expected, CPF_DV2_WEIGHTS, digitValue),\n );\n\n return stripped.slice(CPF_BASE_LENGTH) === dv1Expected + dv2Expected;\n}\n\nfunction validateStructure(input: string, stripped: string): FailedResult | null {\n if (stripped.length === 0) {\n return failure('EMPTY_INPUT', 'CPF input is empty');\n }\n\n const withoutMask = input.replace(/[.-]/g, '');\n if (/[^0-9]/.test(withoutMask)) {\n return failure('INVALID_CHARACTER', 'CPF contains invalid characters');\n }\n\n if (stripped.length !== CPF_LENGTH) {\n return failure('INVALID_LENGTH', `CPF must have ${CPF_LENGTH} digits after normalization`);\n }\n\n if (hasRepeatedDigits(stripped)) {\n return failure('KNOWN_INVALID_PATTERN', 'CPF with all identical digits is invalid');\n }\n\n return null;\n}\n\nexport function isValidCpf(input: string): boolean {\n return validateCpf(input).ok;\n}\n\nexport function validateCpf(input: string): ValidationResult {\n const stripped = stripCpf(input);\n const structural = validateStructure(input, stripped);\n if (structural) {\n return structural;\n }\n\n if (isValidCpfChecksum(stripped)) {\n return { ok: true, value: brandCpf(stripped), format: 'numeric' };\n }\n\n return failure('INVALID_CHECK_DIGIT', 'CPF check digits are invalid');\n}\n"]}
@@ -6,25 +6,25 @@ var metadata_default = {
6
6
  endpoints: [
7
7
  "https://www.gov.br/nfse/pt-br/biblioteca/documentacao-tecnica/documentacao-atual/anexo_b-nbs2-lista_servico_nacional-snnfse.xlsx/@@download/file/ANEXO_B-NBS2-LISTA_SERVICO_NACIONAL-SNNFSe.xlsx"
8
8
  ],
9
- capturadoEm: "2026-06-23",
10
- atualizadoEm: "2026-06-23T18:40:25.263Z",
9
+ capturadoEm: "2026-06-24",
10
+ atualizadoEm: "2026-06-24T15:42:59.060Z",
11
11
  contagens: {
12
12
  nbs: 917
13
13
  },
14
14
  alteracoes: {
15
- adicionados: 917,
15
+ adicionados: 0,
16
16
  removidos: 0,
17
17
  alterados: 0,
18
- comparadoCom: null
18
+ comparadoCom: "2026-06-23"
19
19
  },
20
20
  verificacao: {
21
21
  agendamento: "diario",
22
22
  workflow: "data-refresh-bot.yml",
23
- ultimaExecucao: "2026-06-23T18:40:25.263Z"
23
+ ultimaExecucao: "2026-06-24T15:42:59.060Z"
24
24
  },
25
25
  documentacao: "docs/OFFICIAL-SOURCES.md#nbs"
26
26
  };
27
27
 
28
28
  export { metadata_default };
29
- //# sourceMappingURL=chunk-U5SLA2ZP.js.map
30
- //# sourceMappingURL=chunk-U5SLA2ZP.js.map
29
+ //# sourceMappingURL=chunk-HSLV626U.js.map
30
+ //# sourceMappingURL=chunk-HSLV626U.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/nbs/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,KAAA;AAAA,EACN,IAAA,EAAQ,UAAA;AAAA,EACR,KAAA,EAAS,6DAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,GAAA,EAAO;AAAA,GACT;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,GAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-U5SLA2ZP.js","sourcesContent":["{\n \"id\": \"nbs\",\n \"nome\": \"NFSe NBS\",\n \"fonte\": \"NFSe Nacional — Anexo B NBS2 Lista Serviço Nacional\",\n \"endpoints\": [\n \"https://www.gov.br/nfse/pt-br/biblioteca/documentacao-tecnica/documentacao-atual/anexo_b-nbs2-lista_servico_nacional-snnfse.xlsx/@@download/file/ANEXO_B-NBS2-LISTA_SERVICO_NACIONAL-SNNFSe.xlsx\"\n ],\n \"capturadoEm\": \"2026-06-23\",\n \"atualizadoEm\": \"2026-06-23T18:40:25.263Z\",\n \"contagens\": {\n \"nbs\": 917\n },\n \"alteracoes\": {\n \"adicionados\": 917,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": null\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-23T18:40:25.263Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#nbs\"\n}\n"]}
1
+ {"version":3,"sources":["../src/nbs/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,KAAA;AAAA,EACN,IAAA,EAAQ,UAAA;AAAA,EACR,KAAA,EAAS,6DAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,GAAA,EAAO;AAAA,GACT;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,CAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-HSLV626U.js","sourcesContent":["{\n \"id\": \"nbs\",\n \"nome\": \"NFSe NBS\",\n \"fonte\": \"NFSe Nacional — Anexo B NBS2 Lista Serviço Nacional\",\n \"endpoints\": [\n \"https://www.gov.br/nfse/pt-br/biblioteca/documentacao-tecnica/documentacao-atual/anexo_b-nbs2-lista_servico_nacional-snnfse.xlsx/@@download/file/ANEXO_B-NBS2-LISTA_SERVICO_NACIONAL-SNNFSe.xlsx\"\n ],\n \"capturadoEm\": \"2026-06-24\",\n \"atualizadoEm\": \"2026-06-24T15:42:59.060Z\",\n \"contagens\": {\n \"nbs\": 917\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-06-23\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-24T15:42:59.060Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#nbs\"\n}\n"]}
@@ -6,25 +6,25 @@ var metadata_default = {
6
6
  endpoints: [
7
7
  "https://github.com/jonathands/dados-abertos-receita-cnpj/releases/download/2024.09/Naturezas.zip"
8
8
  ],
9
- capturadoEm: "2026-06-23",
10
- atualizadoEm: "2026-06-23T18:39:09.224Z",
9
+ capturadoEm: "2026-06-24",
10
+ atualizadoEm: "2026-06-24T15:42:58.536Z",
11
11
  contagens: {
12
12
  naturezas: 90
13
13
  },
14
14
  alteracoes: {
15
- adicionados: 90,
15
+ adicionados: 0,
16
16
  removidos: 0,
17
17
  alterados: 0,
18
- comparadoCom: null
18
+ comparadoCom: "2026-06-23"
19
19
  },
20
20
  verificacao: {
21
21
  agendamento: "diario",
22
22
  workflow: "data-refresh-bot.yml",
23
- ultimaExecucao: "2026-06-23T18:39:09.224Z"
23
+ ultimaExecucao: "2026-06-24T15:42:58.536Z"
24
24
  },
25
25
  documentacao: "docs/OFFICIAL-SOURCES.md#natureza-juridica"
26
26
  };
27
27
 
28
28
  export { metadata_default };
29
- //# sourceMappingURL=chunk-IHSOANVC.js.map
30
- //# sourceMappingURL=chunk-IHSOANVC.js.map
29
+ //# sourceMappingURL=chunk-KTP26VPJ.js.map
30
+ //# sourceMappingURL=chunk-KTP26VPJ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/natureza-juridica/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,mBAAA;AAAA,EACN,IAAA,EAAQ,iCAAA;AAAA,EACR,KAAA,EAAS,2DAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,SAAA,EAAa;AAAA,GACf;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,EAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-IHSOANVC.js","sourcesContent":["{\n \"id\": \"natureza-juridica\",\n \"nome\": \"RFB CNPJ Naturezas Jurídicas\",\n \"fonte\": \"Receita Federal — Dados Abertos CNPJ (Naturezas.zip)\",\n \"endpoints\": [\n \"https://github.com/jonathands/dados-abertos-receita-cnpj/releases/download/2024.09/Naturezas.zip\"\n ],\n \"capturadoEm\": \"2026-06-23\",\n \"atualizadoEm\": \"2026-06-23T18:39:09.224Z\",\n \"contagens\": {\n \"naturezas\": 90\n },\n \"alteracoes\": {\n \"adicionados\": 90,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": null\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-23T18:39:09.224Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#natureza-juridica\"\n}\n"]}
1
+ {"version":3,"sources":["../src/natureza-juridica/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,mBAAA;AAAA,EACN,IAAA,EAAQ,iCAAA;AAAA,EACR,KAAA,EAAS,2DAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,SAAA,EAAa;AAAA,GACf;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,CAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-KTP26VPJ.js","sourcesContent":["{\n \"id\": \"natureza-juridica\",\n \"nome\": \"RFB CNPJ Naturezas Jurídicas\",\n \"fonte\": \"Receita Federal — Dados Abertos CNPJ (Naturezas.zip)\",\n \"endpoints\": [\n \"https://github.com/jonathands/dados-abertos-receita-cnpj/releases/download/2024.09/Naturezas.zip\"\n ],\n \"capturadoEm\": \"2026-06-24\",\n \"atualizadoEm\": \"2026-06-24T15:42:58.536Z\",\n \"contagens\": {\n \"naturezas\": 90\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-06-23\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-24T15:42:58.536Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#natureza-juridica\"\n}\n"]}
@@ -6,25 +6,25 @@ var metadata_default = {
6
6
  endpoints: [
7
7
  "https://iccwbo.org/resources-for-business/incoterms-rules/"
8
8
  ],
9
- capturadoEm: "2026-06-23",
10
- atualizadoEm: "2026-06-23T18:35:34.344Z",
9
+ capturadoEm: "2026-06-24",
10
+ atualizadoEm: "2026-06-24T15:36:49.547Z",
11
11
  contagens: {
12
12
  incoterms: 11
13
13
  },
14
14
  alteracoes: {
15
- adicionados: 11,
15
+ adicionados: 0,
16
16
  removidos: 0,
17
17
  alterados: 0,
18
- comparadoCom: null
18
+ comparadoCom: "2026-06-23"
19
19
  },
20
20
  verificacao: {
21
21
  agendamento: "diario",
22
22
  workflow: "data-refresh-bot.yml",
23
- ultimaExecucao: "2026-06-23T18:35:34.344Z"
23
+ ultimaExecucao: "2026-06-24T15:36:49.547Z"
24
24
  },
25
25
  documentacao: "docs/OFFICIAL-SOURCES.md#incoterms"
26
26
  };
27
27
 
28
28
  export { metadata_default };
29
- //# sourceMappingURL=chunk-5423O35D.js.map
30
- //# sourceMappingURL=chunk-5423O35D.js.map
29
+ //# sourceMappingURL=chunk-MAJPROT7.js.map
30
+ //# sourceMappingURL=chunk-MAJPROT7.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/incoterms/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,WAAA;AAAA,EACN,IAAA,EAAQ,oBAAA;AAAA,EACR,KAAA,EAAS,4EAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,SAAA,EAAa;AAAA,GACf;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,EAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-5423O35D.js","sourcesContent":["{\n \"id\": \"incoterms\",\n \"nome\": \"ICC Incoterms 2020\",\n \"fonte\": \"International Chamber of Commerce — Incoterms 2020 (static reference)\",\n \"endpoints\": [\n \"https://iccwbo.org/resources-for-business/incoterms-rules/\"\n ],\n \"capturadoEm\": \"2026-06-23\",\n \"atualizadoEm\": \"2026-06-23T18:35:34.344Z\",\n \"contagens\": {\n \"incoterms\": 11\n },\n \"alteracoes\": {\n \"adicionados\": 11,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": null\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-23T18:35:34.344Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#incoterms\"\n}\n"]}
1
+ {"version":3,"sources":["../src/incoterms/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,WAAA;AAAA,EACN,IAAA,EAAQ,oBAAA;AAAA,EACR,KAAA,EAAS,4EAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,SAAA,EAAa;AAAA,GACf;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,CAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-MAJPROT7.js","sourcesContent":["{\n \"id\": \"incoterms\",\n \"nome\": \"ICC Incoterms 2020\",\n \"fonte\": \"International Chamber of Commerce — Incoterms 2020 (static reference)\",\n \"endpoints\": [\n \"https://iccwbo.org/resources-for-business/incoterms-rules/\"\n ],\n \"capturadoEm\": \"2026-06-24\",\n \"atualizadoEm\": \"2026-06-24T15:36:49.547Z\",\n \"contagens\": {\n \"incoterms\": 11\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-06-23\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-24T15:36:49.547Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#incoterms\"\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { applyCpfMask } from './chunk-CNJ4DIYS.js';
2
- import { validateCpf } from './chunk-LBAWZ4EV.js';
1
+ import { applyCpfMask } from './chunk-5S3IURHL.js';
2
+ import { validateCpf } from './chunk-HCH6G5XY.js';
3
3
 
4
4
  // src/format/cpf.ts
5
5
  function formatCpf(input) {
@@ -11,5 +11,5 @@ function formatCpf(input) {
11
11
  }
12
12
 
13
13
  export { formatCpf };
14
- //# sourceMappingURL=chunk-C7WXL7UR.js.map
15
- //# sourceMappingURL=chunk-C7WXL7UR.js.map
14
+ //# sourceMappingURL=chunk-MNBNKSMF.js.map
15
+ //# sourceMappingURL=chunk-MNBNKSMF.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/format/cpf.ts"],"names":[],"mappings":";;;;AAIO,SAAS,UAAU,KAAA,EAA6B;AACrD,EAAA,MAAM,MAAA,GAAS,YAAY,KAAK,CAAA;AAChC,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AACA,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,WAAW,YAAA,CAAa,MAAA,CAAO,KAAK,CAAA,EAAE;AAC3D","file":"chunk-C7WXL7UR.js","sourcesContent":["import { applyCpfMask } from '../core/cpf/mask.js';\nimport { validateCpf } from '../core/cpf/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatCpf(input: string): FormatResult {\n const result = validateCpf(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyCpfMask(result.value) };\n}\n"]}
1
+ {"version":3,"sources":["../src/format/cpf.ts"],"names":[],"mappings":";;;;AAIO,SAAS,UAAU,KAAA,EAA6B;AACrD,EAAA,MAAM,MAAA,GAAS,YAAY,KAAK,CAAA;AAChC,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AACA,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,WAAW,YAAA,CAAa,MAAA,CAAO,KAAK,CAAA,EAAE;AAC3D","file":"chunk-MNBNKSMF.js","sourcesContent":["import { applyCpfMask } from '../core/cpf/mask.js';\nimport { validateCpf } from '../core/cpf/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatCpf(input: string): FormatResult {\n const result = validateCpf(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyCpfMask(result.value) };\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { validateCnh, CNH_NUMERIC_PATTERN, CNH_LENGTH } from './chunk-A5UHVGRB.js';
1
+ import { validateCnh, CNH_NUMERIC_PATTERN, CNH_LENGTH } from './chunk-EOXFX7MM.js';
2
2
 
3
3
  // src/core/cnh/mask.ts
4
4
  function applyCnhCanonicalFormat(canonical) {
@@ -18,5 +18,5 @@ function formatCnh(input) {
18
18
  }
19
19
 
20
20
  export { formatCnh };
21
- //# sourceMappingURL=chunk-T5NFIPTU.js.map
22
- //# sourceMappingURL=chunk-T5NFIPTU.js.map
21
+ //# sourceMappingURL=chunk-MXOYICSK.js.map
22
+ //# sourceMappingURL=chunk-MXOYICSK.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/cnh/mask.ts","../src/format/cnh.ts"],"names":[],"mappings":";;;AAQO,SAAS,wBAAwB,SAAA,EAA2B;AACjE,EAAA,IAAI,CAAC,mBAAA,CAAoB,IAAA,CAAK,SAAS,CAAA,EAAG;AACxC,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,sBAAA,EAAyB,UAAU,CAAA,iBAAA,CAAmB,CAAA;AAAA,EACxE;AACA,EAAA,OAAO,SAAA;AACT;;;ACTO,SAAS,UAAU,KAAA,EAA6B;AACrD,EAAA,MAAM,MAAA,GAAS,YAAY,KAAK,CAAA;AAChC,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AACA,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,WAAW,uBAAA,CAAwB,MAAA,CAAO,KAAK,CAAA,EAAE;AACtE","file":"chunk-T5NFIPTU.js","sourcesContent":["import { CNH_LENGTH, CNH_NUMERIC_PATTERN } from './constants.js';\n\n/**\n * Official system format — 11 contiguous digits (BR-CNH-005).\n * Unlike CPF, CONTRAN/SENATRAN systems do not use dot/dash decoration.\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao5112014.pdf\n * @see https://www.gov.br/pt-br/servicos/validar-cnh\n */\nexport function applyCnhCanonicalFormat(canonical: string): string {\n if (!CNH_NUMERIC_PATTERN.test(canonical)) {\n throw new Error(`CNH must have exactly ${CNH_LENGTH} digits to format`);\n }\n return canonical;\n}\n","import { applyCnhCanonicalFormat } from '../core/cnh/mask.js';\nimport { validateCnh } from '../core/cnh/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatCnh(input: string): FormatResult {\n const result = validateCnh(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyCnhCanonicalFormat(result.value) };\n}\n"]}
1
+ {"version":3,"sources":["../src/core/cnh/mask.ts","../src/format/cnh.ts"],"names":[],"mappings":";;;AAQO,SAAS,wBAAwB,SAAA,EAA2B;AACjE,EAAA,IAAI,CAAC,mBAAA,CAAoB,IAAA,CAAK,SAAS,CAAA,EAAG;AACxC,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,sBAAA,EAAyB,UAAU,CAAA,iBAAA,CAAmB,CAAA;AAAA,EACxE;AACA,EAAA,OAAO,SAAA;AACT;;;ACTO,SAAS,UAAU,KAAA,EAA6B;AACrD,EAAA,MAAM,MAAA,GAAS,YAAY,KAAK,CAAA;AAChC,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AACA,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,WAAW,uBAAA,CAAwB,MAAA,CAAO,KAAK,CAAA,EAAE;AACtE","file":"chunk-MXOYICSK.js","sourcesContent":["import { CNH_LENGTH, CNH_NUMERIC_PATTERN } from './constants.js';\n\n/**\n * Official system format — 11 contiguous digits (BR-CNH-005).\n * Unlike CPF, CONTRAN/SENATRAN systems do not use dot/dash decoration.\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao5112014.pdf\n * @see https://www.gov.br/pt-br/servicos/validar-cnh\n */\nexport function applyCnhCanonicalFormat(canonical: string): string {\n if (!CNH_NUMERIC_PATTERN.test(canonical)) {\n throw new Error(`CNH must have exactly ${CNH_LENGTH} digits to format`);\n }\n return canonical;\n}\n","import { applyCnhCanonicalFormat } from '../core/cnh/mask.js';\nimport { validateCnh } from '../core/cnh/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatCnh(input: string): FormatResult {\n const result = validateCnh(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyCnhCanonicalFormat(result.value) };\n}\n"]}
@@ -1,20 +1,20 @@
1
1
  import { formatProcessoJudicial } from './chunk-DVA6QQUF.js';
2
- import { formatTelefone } from './chunk-FX6JEBWO.js';
3
- import { formatTituloEleitor } from './chunk-F5OHOWZU.js';
2
+ import { formatTelefone } from './chunk-FL4UUTAC.js';
3
+ import { formatTituloEleitor } from './chunk-4GMBZLAS.js';
4
4
  import { formatPisPasep } from './chunk-WAYYRZ2L.js';
5
- import { formatPixKey } from './chunk-SH6K4PUU.js';
5
+ import { formatPixKey } from './chunk-274K6AOM.js';
6
6
  import { formatPlaca } from './chunk-TTDHGQEC.js';
7
- import { formatRenavam } from './chunk-MDFK6L72.js';
8
- import { formatNfeChave } from './chunk-Z7KH65RZ.js';
7
+ import { formatRenavam } from './chunk-43FQHKCC.js';
9
8
  import { formatIeProdutorRural } from './chunk-EGDZGSHA.js';
10
- import { formatCnh } from './chunk-T5NFIPTU.js';
11
- import { formatCnpj } from './chunk-FLZGOGER.js';
12
- import { formatCpf } from './chunk-C7WXL7UR.js';
9
+ import { formatNfeChave } from './chunk-Z7KH65RZ.js';
10
+ import { formatCep } from './chunk-UXH6EHK6.js';
11
+ import { formatCnh } from './chunk-MXOYICSK.js';
12
+ import { formatCnpj } from './chunk-URNYB2CC.js';
13
+ import { formatCpf } from './chunk-MNBNKSMF.js';
13
14
  import { formatRg } from './chunk-G557DGIX.js';
14
15
  import { formatInscricaoEstadual } from './chunk-P3EJRH4P.js';
15
16
  import { formatBoleto } from './chunk-LPGSPM53.js';
16
17
  import { formatCartaoCredito } from './chunk-OWD47AWI.js';
17
- import { formatCep } from './chunk-6WHDXMTW.js';
18
18
 
19
19
  // src/format/rg.ts
20
20
  function formatRg2(input, options) {
@@ -115,5 +115,5 @@ function dispatchMask(raw, type, options) {
115
115
  }
116
116
 
117
117
  export { MASKABLE_DOCUMENT_TYPES, isMaskableDocumentType, mask, maskRuntime };
118
- //# sourceMappingURL=chunk-BUZTJ3KC.js.map
119
- //# sourceMappingURL=chunk-BUZTJ3KC.js.map
118
+ //# sourceMappingURL=chunk-MXWI7LLA.js.map
119
+ //# sourceMappingURL=chunk-MXWI7LLA.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/format/rg.ts","../src/mask/index.ts"],"names":["formatRg"],"mappings":"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","file":"chunk-BUZTJ3KC.js","sourcesContent":["import type { ValidateRgOptions } from '../core/rg/index.js';\nimport { formatRg as formatRgCore } from '../core/rg/index.js';\n\nexport function formatRg(input: string, options: ValidateRgOptions): ReturnType<typeof formatRgCore> {\n return formatRgCore(input, options);\n}\n","/**\n * Unified display mask — delegates to existing `format*` (BR-MASK-001).\n * @see docs/use-cases/UC-003-format-document.md\n * @see docs/OFFICIAL-SOURCES.md\n */\nimport { formatInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { formatBoleto } from '../format/boleto.js';\nimport { formatCartaoCredito } from '../format/cartao-credito.js';\nimport { formatCep } from '../format/cep.js';\nimport { formatCnh } from '../format/cnh.js';\nimport { formatCnpj } from '../format/cnpj.js';\nimport { formatCpf } from '../format/cpf.js';\nimport { formatIeProdutorRural } from '../format/inscricao-estadual-produtor-rural.js';\nimport { formatNfeChave } from '../format/nfe-chave.js';\nimport { formatPisPasep } from '../format/pis-pasep.js';\nimport { formatPixKey } from '../format/pix.js';\nimport { formatPlaca } from '../format/placa.js';\nimport { formatProcessoJudicial } from '../format/processo-judicial.js';\nimport { formatRg } from '../format/rg.js';\nimport { formatRenavam } from '../format/renavam.js';\nimport { formatTelefone } from '../format/telefone.js';\nimport { formatTituloEleitor } from '../format/titulo-eleitor.js';\nimport type { FormatResult, RgUfCode, UfCode } from '../types/validation-result.js';\n\nexport type MaskableDocumentType =\n | 'cpf'\n | 'cnpj'\n | 'cep'\n | 'placa'\n | 'pis-pasep'\n | 'telefone'\n | 'cnh'\n | 'renavam'\n | 'titulo-eleitor'\n | 'processo-judicial'\n | 'rg'\n | 'nfe-chave'\n | 'boleto'\n | 'cartao-credito'\n | 'inscricao-estadual'\n | 'inscricao-estadual-produtor-rural'\n | 'pix';\n\nexport const MASKABLE_DOCUMENT_TYPES = [\n 'cpf',\n 'cnpj',\n 'cep',\n 'placa',\n 'pis-pasep',\n 'telefone',\n 'cnh',\n 'renavam',\n 'titulo-eleitor',\n 'processo-judicial',\n 'rg',\n 'nfe-chave',\n 'boleto',\n 'cartao-credito',\n 'inscricao-estadual',\n 'inscricao-estadual-produtor-rural',\n 'pix',\n] as const satisfies readonly MaskableDocumentType[];\n\nexport type MaskOptions = {\n uf?: UfCode;\n};\n\nexport function isMaskableDocumentType(type: string): type is MaskableDocumentType {\n return (MASKABLE_DOCUMENT_TYPES as readonly string[]).includes(type);\n}\n\nexport function mask(\n raw: string,\n type: MaskableDocumentType,\n options: MaskOptions = {},\n): FormatResult {\n if (type === 'inscricao-estadual' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for inscricao-estadual masking',\n };\n }\n\n if (type === 'rg' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for RG masking',\n };\n }\n\n return dispatchMask(raw, type, options);\n}\n\n/** Runtime guard for dynamic callers (non-exhaustive type string). */\nexport function maskRuntime(\n type: string,\n raw: string,\n options: MaskOptions = {},\n): FormatResult {\n if (!isMaskableDocumentType(type)) {\n return { ok: false, code: 'UNSUPPORTED_FORMAT', message: `Unknown document type: ${type}` };\n }\n return mask(raw, type, options);\n}\n\nfunction dispatchMask(raw: string, type: MaskableDocumentType, options: MaskOptions): FormatResult {\n switch (type) {\n case 'cpf':\n return formatCpf(raw);\n case 'cnpj':\n return formatCnpj(raw);\n case 'cep':\n return formatCep(raw);\n case 'placa':\n return formatPlaca(raw);\n case 'pis-pasep':\n return formatPisPasep(raw);\n case 'telefone':\n return formatTelefone(raw);\n case 'cnh':\n return formatCnh(raw);\n case 'renavam':\n return formatRenavam(raw);\n case 'titulo-eleitor':\n return formatTituloEleitor(raw);\n case 'processo-judicial':\n return formatProcessoJudicial(raw);\n case 'rg':\n return formatRg(raw, { uf: options.uf as RgUfCode });\n case 'nfe-chave':\n return formatNfeChave(raw);\n case 'boleto':\n return formatBoleto(raw);\n case 'cartao-credito':\n return formatCartaoCredito(raw);\n case 'inscricao-estadual':\n return formatInscricaoEstadual(raw, { uf: options.uf as UfCode });\n case 'inscricao-estadual-produtor-rural':\n return formatIeProdutorRural(raw);\n case 'pix':\n return formatPixKey(raw);\n default: {\n const _exhaustive: never = type;\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: `Unsupported type: ${String(_exhaustive)}`,\n };\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/format/rg.ts","../src/mask/index.ts"],"names":["formatRg"],"mappings":"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","file":"chunk-MXWI7LLA.js","sourcesContent":["import type { ValidateRgOptions } from '../core/rg/index.js';\nimport { formatRg as formatRgCore } from '../core/rg/index.js';\n\nexport function formatRg(input: string, options: ValidateRgOptions): ReturnType<typeof formatRgCore> {\n return formatRgCore(input, options);\n}\n","/**\n * Unified display mask — delegates to existing `format*` (BR-MASK-001).\n * @see docs/use-cases/UC-003-format-document.md\n * @see docs/OFFICIAL-SOURCES.md\n */\nimport { formatInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { formatBoleto } from '../format/boleto.js';\nimport { formatCartaoCredito } from '../format/cartao-credito.js';\nimport { formatCep } from '../format/cep.js';\nimport { formatCnh } from '../format/cnh.js';\nimport { formatCnpj } from '../format/cnpj.js';\nimport { formatCpf } from '../format/cpf.js';\nimport { formatIeProdutorRural } from '../format/inscricao-estadual-produtor-rural.js';\nimport { formatNfeChave } from '../format/nfe-chave.js';\nimport { formatPisPasep } from '../format/pis-pasep.js';\nimport { formatPixKey } from '../format/pix.js';\nimport { formatPlaca } from '../format/placa.js';\nimport { formatProcessoJudicial } from '../format/processo-judicial.js';\nimport { formatRg } from '../format/rg.js';\nimport { formatRenavam } from '../format/renavam.js';\nimport { formatTelefone } from '../format/telefone.js';\nimport { formatTituloEleitor } from '../format/titulo-eleitor.js';\nimport type { FormatResult, RgUfCode, UfCode } from '../types/validation-result.js';\n\nexport type MaskableDocumentType =\n | 'cpf'\n | 'cnpj'\n | 'cep'\n | 'placa'\n | 'pis-pasep'\n | 'telefone'\n | 'cnh'\n | 'renavam'\n | 'titulo-eleitor'\n | 'processo-judicial'\n | 'rg'\n | 'nfe-chave'\n | 'boleto'\n | 'cartao-credito'\n | 'inscricao-estadual'\n | 'inscricao-estadual-produtor-rural'\n | 'pix';\n\nexport const MASKABLE_DOCUMENT_TYPES = [\n 'cpf',\n 'cnpj',\n 'cep',\n 'placa',\n 'pis-pasep',\n 'telefone',\n 'cnh',\n 'renavam',\n 'titulo-eleitor',\n 'processo-judicial',\n 'rg',\n 'nfe-chave',\n 'boleto',\n 'cartao-credito',\n 'inscricao-estadual',\n 'inscricao-estadual-produtor-rural',\n 'pix',\n] as const satisfies readonly MaskableDocumentType[];\n\nexport type MaskOptions = {\n uf?: UfCode;\n};\n\nexport function isMaskableDocumentType(type: string): type is MaskableDocumentType {\n return (MASKABLE_DOCUMENT_TYPES as readonly string[]).includes(type);\n}\n\nexport function mask(\n raw: string,\n type: MaskableDocumentType,\n options: MaskOptions = {},\n): FormatResult {\n if (type === 'inscricao-estadual' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for inscricao-estadual masking',\n };\n }\n\n if (type === 'rg' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for RG masking',\n };\n }\n\n return dispatchMask(raw, type, options);\n}\n\n/** Runtime guard for dynamic callers (non-exhaustive type string). */\nexport function maskRuntime(\n type: string,\n raw: string,\n options: MaskOptions = {},\n): FormatResult {\n if (!isMaskableDocumentType(type)) {\n return { ok: false, code: 'UNSUPPORTED_FORMAT', message: `Unknown document type: ${type}` };\n }\n return mask(raw, type, options);\n}\n\nfunction dispatchMask(raw: string, type: MaskableDocumentType, options: MaskOptions): FormatResult {\n switch (type) {\n case 'cpf':\n return formatCpf(raw);\n case 'cnpj':\n return formatCnpj(raw);\n case 'cep':\n return formatCep(raw);\n case 'placa':\n return formatPlaca(raw);\n case 'pis-pasep':\n return formatPisPasep(raw);\n case 'telefone':\n return formatTelefone(raw);\n case 'cnh':\n return formatCnh(raw);\n case 'renavam':\n return formatRenavam(raw);\n case 'titulo-eleitor':\n return formatTituloEleitor(raw);\n case 'processo-judicial':\n return formatProcessoJudicial(raw);\n case 'rg':\n return formatRg(raw, { uf: options.uf as RgUfCode });\n case 'nfe-chave':\n return formatNfeChave(raw);\n case 'boleto':\n return formatBoleto(raw);\n case 'cartao-credito':\n return formatCartaoCredito(raw);\n case 'inscricao-estadual':\n return formatInscricaoEstadual(raw, { uf: options.uf as UfCode });\n case 'inscricao-estadual-produtor-rural':\n return formatIeProdutorRural(raw);\n case 'pix':\n return formatPixKey(raw);\n default: {\n const _exhaustive: never = type;\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: `Unsupported type: ${String(_exhaustive)}`,\n };\n }\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { ddd_metadata_default } from './chunk-AED7KSBM.js';
1
+ import { ddd_metadata_default } from './chunk-RRG2HJMY.js';
2
2
  import { brandTelefone } from './chunk-4NFEM2SU.js';
3
3
 
4
4
  // src/core/telefone/constants.ts
@@ -24087,5 +24087,5 @@ function validateTelefone(input) {
24087
24087
  }
24088
24088
 
24089
24089
  export { ANATEL_DDDS, ANATEL_DDD_SET, TELEFONE_ANATEL_DDD_PANEL_URL, TELEFONE_CELULAR_MASK_PATTERN, TELEFONE_DDD_DATA_VERSION, TELEFONE_FIXO_MASK_PATTERN, TELEFONE_GOLDEN_CELULAR, TELEFONE_GOLDEN_CELULAR_MASKED, TELEFONE_GOLDEN_FIXO, TELEFONE_GOLDEN_FIXO_MASKED, TELEFONE_OFFICIAL_SOURCE_URL, extractTelefoneDigits, getDddInfo, isValidTelefone, normalizeTelefoneDigits, stripTelefone, validateTelefone };
24090
- //# sourceMappingURL=chunk-QZNAGWZB.js.map
24091
- //# sourceMappingURL=chunk-QZNAGWZB.js.map
24090
+ //# sourceMappingURL=chunk-NWXFSSGF.js.map
24091
+ //# sourceMappingURL=chunk-NWXFSSGF.js.map