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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/README.md +147 -22
  2. package/dist/boleto.d.ts +2 -2
  3. package/dist/boleto.js +3 -2
  4. package/dist/brcode.d.ts +2 -2
  5. package/dist/brcode.js +9 -6
  6. package/dist/cartao-credito.d.ts +2 -2
  7. package/dist/cartao-credito.js +4 -2
  8. package/dist/cep.d.ts +2 -2
  9. package/dist/cep.js +6 -3
  10. package/dist/chunk-2CNYSY3Z.js +3 -0
  11. package/dist/chunk-2CNYSY3Z.js.map +1 -0
  12. package/dist/{chunk-GLKGX552.js → chunk-2JJS46FM.js} +5 -23
  13. package/dist/chunk-2JJS46FM.js.map +1 -0
  14. package/dist/{chunk-FLZ6IHOD.js → chunk-3QP6R46N.js} +119 -496
  15. package/dist/chunk-3QP6R46N.js.map +1 -0
  16. package/dist/chunk-4SNBZFS5.js +8 -0
  17. package/dist/chunk-4SNBZFS5.js.map +1 -0
  18. package/dist/{chunk-IW3ESGWH.js → chunk-4W4OKLSZ.js} +4 -25
  19. package/dist/chunk-4W4OKLSZ.js.map +1 -0
  20. package/dist/chunk-4Y2FBO57.js +26 -0
  21. package/dist/chunk-4Y2FBO57.js.map +1 -0
  22. package/dist/{chunk-465IC76U.js → chunk-5UL3M7IU.js} +4 -23
  23. package/dist/chunk-5UL3M7IU.js.map +1 -0
  24. package/dist/chunk-6QJFMOIX.js +22 -0
  25. package/dist/chunk-6QJFMOIX.js.map +1 -0
  26. package/dist/chunk-7ZL7PZII.js +187 -0
  27. package/dist/chunk-7ZL7PZII.js.map +1 -0
  28. package/dist/chunk-BFZPCEYB.js +14 -0
  29. package/dist/chunk-BFZPCEYB.js.map +1 -0
  30. package/dist/chunk-CDGRHI7W.js +22 -0
  31. package/dist/chunk-CDGRHI7W.js.map +1 -0
  32. package/dist/chunk-CQPM43VV.js +3 -0
  33. package/dist/chunk-CQPM43VV.js.map +1 -0
  34. package/dist/chunk-D36RM7OD.js +207 -0
  35. package/dist/chunk-D36RM7OD.js.map +1 -0
  36. package/dist/{chunk-CR45BOLS.js → chunk-EPKHEW5V.js} +4 -13
  37. package/dist/chunk-EPKHEW5V.js.map +1 -0
  38. package/dist/{chunk-5BBNLRZP.js → chunk-F6PTZY4O.js} +5 -14
  39. package/dist/chunk-F6PTZY4O.js.map +1 -0
  40. package/dist/chunk-FXLVNCG3.js +26 -0
  41. package/dist/chunk-FXLVNCG3.js.map +1 -0
  42. package/dist/chunk-G24G7WR5.js +3 -0
  43. package/dist/chunk-G24G7WR5.js.map +1 -0
  44. package/dist/chunk-G2Y63PIF.js +24 -0
  45. package/dist/chunk-G2Y63PIF.js.map +1 -0
  46. package/dist/chunk-G32U6YQ5.js +14 -0
  47. package/dist/chunk-G32U6YQ5.js.map +1 -0
  48. package/dist/{chunk-TVVNTLIH.js → chunk-GRDUTHNX.js} +3 -3
  49. package/dist/{chunk-TVVNTLIH.js.map → chunk-GRDUTHNX.js.map} +1 -1
  50. package/dist/chunk-GVK6IMBF.js +3 -0
  51. package/dist/chunk-GVK6IMBF.js.map +1 -0
  52. package/dist/chunk-IQGRFAQV.js +23 -0
  53. package/dist/chunk-IQGRFAQV.js.map +1 -0
  54. package/dist/chunk-JQABTHUJ.js +3 -0
  55. package/dist/chunk-JQABTHUJ.js.map +1 -0
  56. package/dist/{chunk-GN7QIQE6.js → chunk-KH7DWOUA.js} +5 -23
  57. package/dist/chunk-KH7DWOUA.js.map +1 -0
  58. package/dist/chunk-KQDLIGSG.js +14 -0
  59. package/dist/chunk-KQDLIGSG.js.map +1 -0
  60. package/dist/chunk-LF2B4VPE.js +3 -0
  61. package/dist/chunk-LF2B4VPE.js.map +1 -0
  62. package/dist/chunk-LGD2JJBZ.js +288 -0
  63. package/dist/chunk-LGD2JJBZ.js.map +1 -0
  64. package/dist/{chunk-MQT25QN7.js → chunk-LYBFUKHR.js} +4 -3
  65. package/dist/chunk-LYBFUKHR.js.map +1 -0
  66. package/dist/chunk-MFNJTAUS.js +3 -0
  67. package/dist/chunk-MFNJTAUS.js.map +1 -0
  68. package/dist/{chunk-D5JMGN7U.js → chunk-MK7OJUF5.js} +7 -5
  69. package/dist/chunk-MK7OJUF5.js.map +1 -0
  70. package/dist/chunk-MLPXW7N2.js +226 -0
  71. package/dist/chunk-MLPXW7N2.js.map +1 -0
  72. package/dist/{chunk-BBL6ZPXH.js → chunk-MSLJF2FM.js} +18 -3
  73. package/dist/chunk-MSLJF2FM.js.map +1 -0
  74. package/dist/{chunk-V3OWDXRU.js → chunk-NHLLC6WH.js} +4 -3
  75. package/dist/chunk-NHLLC6WH.js.map +1 -0
  76. package/dist/chunk-OCYXNLHO.js +307 -0
  77. package/dist/chunk-OCYXNLHO.js.map +1 -0
  78. package/dist/{chunk-B2TDI3YS.js → chunk-OTZHMJYE.js} +3 -3
  79. package/dist/{chunk-B2TDI3YS.js.map → chunk-OTZHMJYE.js.map} +1 -1
  80. package/dist/chunk-P55H5YRX.js +3 -0
  81. package/dist/chunk-P55H5YRX.js.map +1 -0
  82. package/dist/chunk-PB4RIS6G.js +27 -0
  83. package/dist/chunk-PB4RIS6G.js.map +1 -0
  84. package/dist/chunk-QGMVUIDD.js +3 -0
  85. package/dist/chunk-QGMVUIDD.js.map +1 -0
  86. package/dist/chunk-RYGAK7PB.js +3 -0
  87. package/dist/chunk-RYGAK7PB.js.map +1 -0
  88. package/dist/chunk-US4OLTJ2.js +104 -0
  89. package/dist/chunk-US4OLTJ2.js.map +1 -0
  90. package/dist/{chunk-GEHAH4OH.js → chunk-WCQUQ2WX.js} +4 -4
  91. package/dist/{chunk-GEHAH4OH.js.map → chunk-WCQUQ2WX.js.map} +1 -1
  92. package/dist/chunk-WLE2ENQA.js +86 -0
  93. package/dist/chunk-WLE2ENQA.js.map +1 -0
  94. package/dist/{chunk-2KTD23PD.js → chunk-WPL47PWJ.js} +5 -14
  95. package/dist/chunk-WPL47PWJ.js.map +1 -0
  96. package/dist/chunk-XKY2CV3G.js +14 -0
  97. package/dist/chunk-XKY2CV3G.js.map +1 -0
  98. package/dist/chunk-XUO7FV6Z.js +14 -0
  99. package/dist/chunk-XUO7FV6Z.js.map +1 -0
  100. package/dist/chunk-Y2KUN2D3.js +3 -0
  101. package/dist/chunk-Y2KUN2D3.js.map +1 -0
  102. package/dist/chunk-Y6IW2LMW.js +460 -0
  103. package/dist/chunk-Y6IW2LMW.js.map +1 -0
  104. package/dist/chunk-YGA5W54J.js +3 -0
  105. package/dist/chunk-YGA5W54J.js.map +1 -0
  106. package/dist/{chunk-UE4PVN6Y.js → chunk-YXELVV37.js} +5 -14
  107. package/dist/chunk-YXELVV37.js.map +1 -0
  108. package/dist/chunk-YYHS5WQN.js +28 -0
  109. package/dist/chunk-YYHS5WQN.js.map +1 -0
  110. package/dist/chunk-ZAUZRIOU.js +23 -0
  111. package/dist/chunk-ZAUZRIOU.js.map +1 -0
  112. package/dist/chunk-ZH4RJNG7.js +3 -0
  113. package/dist/chunk-ZH4RJNG7.js.map +1 -0
  114. package/dist/cnh.d.ts +39 -0
  115. package/dist/cnh.js +11 -0
  116. package/dist/cnh.js.map +1 -0
  117. package/dist/cnpj.d.ts +2 -2
  118. package/dist/cnpj.js +6 -4
  119. package/dist/cpf.d.ts +2 -2
  120. package/dist/cpf.js +6 -4
  121. package/dist/detect.d.ts +23 -0
  122. package/dist/detect.js +26 -0
  123. package/dist/detect.js.map +1 -0
  124. package/dist/generate.d.ts +10 -0
  125. package/dist/generate.js +29 -0
  126. package/dist/generate.js.map +1 -0
  127. package/dist/index-CZLo9YOT.d.ts +21 -0
  128. package/dist/index.d.ts +12 -4
  129. package/dist/index.js +60 -25
  130. package/dist/index.js.map +1 -1
  131. package/dist/inscricao-estadual-produtor-rural-CfWUaggb.d.ts +46 -0
  132. package/dist/inscricao-estadual-produtor-rural.d.ts +2 -0
  133. package/dist/inscricao-estadual-produtor-rural.js +7 -0
  134. package/dist/inscricao-estadual-produtor-rural.js.map +1 -0
  135. package/dist/inscricao-estadual.d.ts +4 -21
  136. package/dist/inscricao-estadual.js +5 -2
  137. package/dist/nfe-chave.d.ts +71 -0
  138. package/dist/nfe-chave.js +6 -0
  139. package/dist/nfe-chave.js.map +1 -0
  140. package/dist/pis-pasep.d.ts +2 -2
  141. package/dist/pis-pasep.js +5 -3
  142. package/dist/{pix-BtTx04Si.d.ts → pix-ddldLlb7.d.ts} +1 -1
  143. package/dist/pix.d.ts +2 -2
  144. package/dist/pix.js +8 -6
  145. package/dist/placa.d.ts +2 -2
  146. package/dist/placa.js +6 -3
  147. package/dist/renavam.d.ts +37 -0
  148. package/dist/renavam.js +11 -0
  149. package/dist/renavam.js.map +1 -0
  150. package/dist/sanitize.d.ts +9 -0
  151. package/dist/sanitize.js +24 -0
  152. package/dist/sanitize.js.map +1 -0
  153. package/dist/telefone.d.ts +2 -2
  154. package/dist/telefone.js +4 -2
  155. package/dist/titulo-eleitor.d.ts +56 -0
  156. package/dist/titulo-eleitor.js +10 -0
  157. package/dist/titulo-eleitor.js.map +1 -0
  158. package/dist/{validation-result-C-Ei-lZH.d.ts → validation-result-BhQE-1_O.d.ts} +64 -2
  159. package/package.json +48 -4
  160. package/dist/chunk-2KTD23PD.js.map +0 -1
  161. package/dist/chunk-465IC76U.js.map +0 -1
  162. package/dist/chunk-5BBNLRZP.js.map +0 -1
  163. package/dist/chunk-BBL6ZPXH.js.map +0 -1
  164. package/dist/chunk-CR45BOLS.js.map +0 -1
  165. package/dist/chunk-D5JMGN7U.js.map +0 -1
  166. package/dist/chunk-FLZ6IHOD.js.map +0 -1
  167. package/dist/chunk-GLKGX552.js.map +0 -1
  168. package/dist/chunk-GN7QIQE6.js.map +0 -1
  169. package/dist/chunk-IW3ESGWH.js.map +0 -1
  170. package/dist/chunk-MQT25QN7.js.map +0 -1
  171. package/dist/chunk-UE4PVN6Y.js.map +0 -1
  172. package/dist/chunk-V3OWDXRU.js.map +0 -1
  173. package/dist/chunk-W6UXVWSR.js +0 -13
  174. package/dist/chunk-W6UXVWSR.js.map +0 -1
@@ -0,0 +1,26 @@
1
+ import { detectBoletoInputKind, validateLinhaDigitavel, applyLinhaDigitavelMask } from './chunk-4W4OKLSZ.js';
2
+
3
+ // src/format/boleto.ts
4
+ function formatBoleto(input) {
5
+ const trimmed = input.trim();
6
+ if (trimmed.length === 0) {
7
+ return { ok: false, code: "EMPTY_INPUT", message: "Boleto input is empty" };
8
+ }
9
+ const kind = detectBoletoInputKind(trimmed);
10
+ if (kind === "codigo-barras") {
11
+ return {
12
+ ok: false,
13
+ code: "UNSUPPORTED_FORMAT",
14
+ message: "Boleto barcode formatting is not supported in v1"
15
+ };
16
+ }
17
+ const result = validateLinhaDigitavel(trimmed);
18
+ if (!result.ok) {
19
+ return { ok: false, code: result.code, message: result.message };
20
+ }
21
+ return { ok: true, formatted: applyLinhaDigitavelMask(result.value) };
22
+ }
23
+
24
+ export { formatBoleto };
25
+ //# sourceMappingURL=chunk-FXLVNCG3.js.map
26
+ //# sourceMappingURL=chunk-FXLVNCG3.js.map
@@ -0,0 +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"]}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=chunk-G24G7WR5.js.map
3
+ //# sourceMappingURL=chunk-G24G7WR5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-G24G7WR5.js"}
@@ -0,0 +1,24 @@
1
+ import { validateTelefone, TELEFONE_CELULAR_MASK_PATTERN, TELEFONE_FIXO_MASK_PATTERN } from './chunk-5UL3M7IU.js';
2
+
3
+ // src/core/telefone/mask.ts
4
+ function applyTelefoneMask(canonical, tipo) {
5
+ const pattern = tipo === "celular" ? TELEFONE_CELULAR_MASK_PATTERN : TELEFONE_FIXO_MASK_PATTERN;
6
+ const match = pattern.exec(canonical);
7
+ if (!match) {
8
+ throw new Error(`Telephone must have valid ${tipo} length to apply mask`);
9
+ }
10
+ return `(${match[1]}) ${match[2]}-${match[3]}`;
11
+ }
12
+
13
+ // src/format/telefone.ts
14
+ function formatTelefone(input) {
15
+ const result = validateTelefone(input);
16
+ if (!result.ok) {
17
+ return { ok: false, code: result.code, message: result.message };
18
+ }
19
+ return { ok: true, formatted: applyTelefoneMask(result.value, result.tipo) };
20
+ }
21
+
22
+ export { formatTelefone };
23
+ //# sourceMappingURL=chunk-G2Y63PIF.js.map
24
+ //# sourceMappingURL=chunk-G2Y63PIF.js.map
@@ -0,0 +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-G2Y63PIF.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"]}
@@ -0,0 +1,14 @@
1
+ import { validatePlaca } from './chunk-WPL47PWJ.js';
2
+
3
+ // src/format/placa.ts
4
+ function formatPlaca(input) {
5
+ const result = validatePlaca(input);
6
+ if (!result.ok) {
7
+ return { ok: false, code: result.code, message: result.message };
8
+ }
9
+ return { ok: true, formatted: result.value };
10
+ }
11
+
12
+ export { formatPlaca };
13
+ //# sourceMappingURL=chunk-G32U6YQ5.js.map
14
+ //# sourceMappingURL=chunk-G32U6YQ5.js.map
@@ -0,0 +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,4 +1,4 @@
1
- import { validatePixKey, applyPixEvpKeyMask, applyPixEmailKeyMask, applyPixPhoneKeyMask, applyPixCnpjKeyMask, applyPixCpfKeyMask } from './chunk-D5JMGN7U.js';
1
+ import { validatePixKey, applyPixEvpKeyMask, applyPixEmailKeyMask, applyPixPhoneKeyMask, applyPixCnpjKeyMask, applyPixCpfKeyMask } from './chunk-MK7OJUF5.js';
2
2
 
3
3
  // src/format/pix.ts
4
4
  function applyPixMask(keyType, value) {
@@ -24,5 +24,5 @@ function formatPixKey(input, options) {
24
24
  }
25
25
 
26
26
  export { formatPixKey };
27
- //# sourceMappingURL=chunk-TVVNTLIH.js.map
28
- //# sourceMappingURL=chunk-TVVNTLIH.js.map
27
+ //# sourceMappingURL=chunk-GRDUTHNX.js.map
28
+ //# sourceMappingURL=chunk-GRDUTHNX.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/format/pix.ts"],"names":[],"mappings":";;;AAgBA,SAAS,YAAA,CAAa,SAAqB,KAAA,EAAuB;AAChE,EAAA,QAAQ,OAAA;AAAS,IACf,KAAK,KAAA;AACH,MAAA,OAAO,mBAAmB,KAAK,CAAA;AAAA,IACjC,KAAK,MAAA;AACH,MAAA,OAAO,oBAAoB,KAAK,CAAA;AAAA,IAClC,KAAK,OAAA;AACH,MAAA,OAAO,qBAAqB,KAAK,CAAA;AAAA,IACnC,KAAK,OAAA;AACH,MAAA,OAAO,qBAAqB,KAAK,CAAA;AAAA,IACnC,KAAK,KAAA;AACH,MAAA,OAAO,mBAAmB,KAAK,CAAA;AAAA;AAErC;AAEO,SAAS,YAAA,CAAa,OAAe,OAAA,EAA+C;AACzF,EAAA,MAAM,MAAA,GAAS,cAAA,CAAe,KAAA,EAAO,OAAO,CAAA;AAC5C,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,IAAI,IAAA,EAAM,SAAA,EAAW,aAAa,MAAA,CAAO,OAAA,EAAS,MAAA,CAAO,KAAK,CAAA,EAAE;AAC3E","file":"chunk-TVVNTLIH.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 type { ValidatePixKeyOptions } from '../core/pix/index.js';\nimport { validatePixKey } from '../core/pix/index.js';\nimport {\n applyPixCnpjKeyMask,\n applyPixCpfKeyMask,\n applyPixEmailKeyMask,\n applyPixEvpKeyMask,\n applyPixPhoneKeyMask,\n} from '../core/pix/mask.js';\nimport type { FormatResult, PixKeyType } from '../types/validation-result.js';\n\nfunction applyPixMask(keyType: PixKeyType, value: string): string {\n switch (keyType) {\n case 'cpf':\n return applyPixCpfKeyMask(value);\n case 'cnpj':\n return applyPixCnpjKeyMask(value);\n case 'phone':\n return applyPixPhoneKeyMask(value);\n case 'email':\n return applyPixEmailKeyMask(value);\n case 'evp':\n return applyPixEvpKeyMask(value);\n }\n}\n\nexport function formatPixKey(input: string, options?: ValidatePixKeyOptions): FormatResult {\n const result = validatePixKey(input, options);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n\n return { ok: true, formatted: applyPixMask(result.keyType, result.value) };\n}\n"]}
1
+ {"version":3,"sources":["../src/format/pix.ts"],"names":[],"mappings":";;;AAgBA,SAAS,YAAA,CAAa,SAAqB,KAAA,EAAuB;AAChE,EAAA,QAAQ,OAAA;AAAS,IACf,KAAK,KAAA;AACH,MAAA,OAAO,mBAAmB,KAAK,CAAA;AAAA,IACjC,KAAK,MAAA;AACH,MAAA,OAAO,oBAAoB,KAAK,CAAA;AAAA,IAClC,KAAK,OAAA;AACH,MAAA,OAAO,qBAAqB,KAAK,CAAA;AAAA,IACnC,KAAK,OAAA;AACH,MAAA,OAAO,qBAAqB,KAAK,CAAA;AAAA,IACnC,KAAK,KAAA;AACH,MAAA,OAAO,mBAAmB,KAAK,CAAA;AAAA;AAErC;AAEO,SAAS,YAAA,CAAa,OAAe,OAAA,EAA+C;AACzF,EAAA,MAAM,MAAA,GAAS,cAAA,CAAe,KAAA,EAAO,OAAO,CAAA;AAC5C,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,IAAI,IAAA,EAAM,SAAA,EAAW,aAAa,MAAA,CAAO,OAAA,EAAS,MAAA,CAAO,KAAK,CAAA,EAAE;AAC3E","file":"chunk-GRDUTHNX.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 type { ValidatePixKeyOptions } from '../core/pix/index.js';\nimport { validatePixKey } from '../core/pix/index.js';\nimport {\n applyPixCnpjKeyMask,\n applyPixCpfKeyMask,\n applyPixEmailKeyMask,\n applyPixEvpKeyMask,\n applyPixPhoneKeyMask,\n} from '../core/pix/mask.js';\nimport type { FormatResult, PixKeyType } from '../types/validation-result.js';\n\nfunction applyPixMask(keyType: PixKeyType, value: string): string {\n switch (keyType) {\n case 'cpf':\n return applyPixCpfKeyMask(value);\n case 'cnpj':\n return applyPixCnpjKeyMask(value);\n case 'phone':\n return applyPixPhoneKeyMask(value);\n case 'email':\n return applyPixEmailKeyMask(value);\n case 'evp':\n return applyPixEvpKeyMask(value);\n }\n}\n\nexport function formatPixKey(input: string, options?: ValidatePixKeyOptions): FormatResult {\n const result = validatePixKey(input, options);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n\n return { ok: true, formatted: applyPixMask(result.keyType, result.value) };\n}\n"]}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=chunk-GVK6IMBF.js.map
3
+ //# sourceMappingURL=chunk-GVK6IMBF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-GVK6IMBF.js"}
@@ -0,0 +1,23 @@
1
+ import { validatePisPasep, PIS_PASEP_MASK_PATTERN } from './chunk-KH7DWOUA.js';
2
+
3
+ // src/core/pis-pasep/mask.ts
4
+ function applyPisPasepMask(canonical) {
5
+ const match = PIS_PASEP_MASK_PATTERN.exec(canonical);
6
+ if (!match) {
7
+ throw new Error("PIS/PASEP must have exactly 11 digits to apply mask");
8
+ }
9
+ return `${match[1]}.${match[2]}.${match[3]}-${match[4]}`;
10
+ }
11
+
12
+ // src/format/pis-pasep.ts
13
+ function formatPisPasep(input) {
14
+ const result = validatePisPasep(input);
15
+ if (!result.ok) {
16
+ return { ok: false, code: result.code, message: result.message };
17
+ }
18
+ return { ok: true, formatted: applyPisPasepMask(result.value) };
19
+ }
20
+
21
+ export { formatPisPasep };
22
+ //# sourceMappingURL=chunk-IQGRFAQV.js.map
23
+ //# sourceMappingURL=chunk-IQGRFAQV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/pis-pasep/mask.ts","../src/format/pis-pasep.ts"],"names":[],"mappings":";;;AAGO,SAAS,kBAAkB,SAAA,EAA2B;AAC3D,EAAA,MAAM,KAAA,GAAQ,sBAAA,CAAuB,IAAA,CAAK,SAAS,CAAA;AACnD,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,MAAM,qDAAqD,CAAA;AAAA,EACvE;AACA,EAAA,OAAO,CAAA,EAAG,KAAA,CAAM,CAAC,CAAC,IAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA,EAAI,MAAM,CAAC,CAAC,CAAA,CAAA,EAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AACxD;;;ACLO,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,EAAA,EAAI,IAAA,EAAM,WAAW,iBAAA,CAAkB,MAAA,CAAO,KAAK,CAAA,EAAE;AAChE","file":"chunk-IQGRFAQV.js","sourcesContent":["import { PIS_PASEP_MASK_PATTERN } from './constants.js';\n\n/** Mask XXX.XXXXX.XX-X (BR-PIS-006). */\nexport function applyPisPasepMask(canonical: string): string {\n const match = PIS_PASEP_MASK_PATTERN.exec(canonical);\n if (!match) {\n throw new Error('PIS/PASEP must have exactly 11 digits to apply mask');\n }\n return `${match[1]}.${match[2]}.${match[3]}-${match[4]}`;\n}\n","import { applyPisPasepMask } from '../core/pis-pasep/mask.js';\nimport { validatePisPasep } from '../core/pis-pasep/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatPisPasep(input: string): FormatResult {\n const result = validatePisPasep(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyPisPasepMask(result.value) };\n}\n"]}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=chunk-JQABTHUJ.js.map
3
+ //# sourceMappingURL=chunk-JQABTHUJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-JQABTHUJ.js"}
@@ -1,5 +1,5 @@
1
- import { computeCheckDigit } from './chunk-B2TDI3YS.js';
2
- import { brandPisPasep } from './chunk-BBL6ZPXH.js';
1
+ import { computeCheckDigit } from './chunk-OTZHMJYE.js';
2
+ import { brandPisPasep } from './chunk-MSLJF2FM.js';
3
3
 
4
4
  // src/strip/pis-pasep.ts
5
5
  function stripPisPasep(input) {
@@ -68,24 +68,6 @@ function validatePisPasep(input) {
68
68
  return failure("INVALID_CHECK_DIGIT", "PIS/PASEP check digit is invalid");
69
69
  }
70
70
 
71
- // src/core/pis-pasep/mask.ts
72
- function applyPisPasepMask(canonical) {
73
- const match = PIS_PASEP_MASK_PATTERN.exec(canonical);
74
- if (!match) {
75
- throw new Error("PIS/PASEP must have exactly 11 digits to apply mask");
76
- }
77
- return `${match[1]}.${match[2]}.${match[3]}-${match[4]}`;
78
- }
79
-
80
- // src/format/pis-pasep.ts
81
- function formatPisPasep(input) {
82
- const result = validatePisPasep(input);
83
- if (!result.ok) {
84
- return { ok: false, code: result.code, message: result.message };
85
- }
86
- return { ok: true, formatted: applyPisPasepMask(result.value) };
87
- }
88
-
89
- export { PIS_PASEP_GOLDEN_PRIMARY, PIS_PASEP_GOLDEN_PRIMARY_MASKED, PIS_PASEP_GOLDEN_SECONDARY, PIS_PASEP_OFFICIAL_SOURCE_URL, formatPisPasep, isValidPisPasep, stripPisPasep, validatePisPasep };
90
- //# sourceMappingURL=chunk-GN7QIQE6.js.map
91
- //# sourceMappingURL=chunk-GN7QIQE6.js.map
71
+ export { PIS_PASEP_BASE_LENGTH, PIS_PASEP_DV_WEIGHTS, PIS_PASEP_GOLDEN_PRIMARY, PIS_PASEP_GOLDEN_PRIMARY_MASKED, PIS_PASEP_GOLDEN_SECONDARY, PIS_PASEP_MASK_PATTERN, PIS_PASEP_OFFICIAL_SOURCE_URL, isValidPisPasep, stripPisPasep, validatePisPasep };
72
+ //# sourceMappingURL=chunk-KH7DWOUA.js.map
73
+ //# sourceMappingURL=chunk-KH7DWOUA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/strip/pis-pasep.ts","../src/core/pis-pasep/constants.ts","../src/core/pis-pasep/index.ts"],"names":[],"mappings":"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","file":"chunk-KH7DWOUA.js","sourcesContent":["/**\n * Strip PIS/PASEP mask — digits only (BR-PIS-002).\n * @see https://www.gov.br/previdencia/pt-br/outros/imagens/2015/07/rgrva_RegrasValidacao.pdf — RV_03\n */\nexport function stripPisPasep(input: string): string {\n return input.replace(/\\D/g, '');\n}\n","/**\n * PIS/PASEP/NIS/NIT constants — modulo 11 (CNIS unified registry).\n * @see https://www.gov.br/previdencia/pt-br/outros/imagens/2015/07/rgrva_RegrasValidacao.pdf — RV_03\n * @see docs/use-cases/UC-006-validate-pis-pasep.md — golden vector 10027230888\n *\n * PIS, PASEP, NIS, and NIT share the same 11-digit algorithm and check-digit weights.\n */\nexport const PIS_PASEP_DV_WEIGHTS = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const PIS_PASEP_LENGTH = 11;\nexport const PIS_PASEP_BASE_LENGTH = 10;\nexport const PIS_PASEP_MASK_PATTERN = /^(\\d{3})(\\d{5})(\\d{2})(\\d{1})$/;\n\nexport const PIS_PASEP_GOLDEN_PRIMARY = '10027230888';\nexport const PIS_PASEP_GOLDEN_SECONDARY = '12056456402';\nexport const PIS_PASEP_GOLDEN_PRIMARY_MASKED = '100.27230.88-8';\nexport const PIS_PASEP_OFFICIAL_SOURCE_URL =\n 'https://www.gov.br/previdencia/pt-br/outros/imagens/2015/07/rgrva_RegrasValidacao.pdf';\n","/**\n * PIS/PASEP validation — modulo 11 (CNIS unified registry).\n * @see https://www.gov.br/previdencia/pt-br/outros/imagens/2015/07/rgrva_RegrasValidacao.pdf — RV_03\n * @see docs/use-cases/UC-006-validate-pis-pasep.md — golden vector 10027230888\n */\nimport { stripPisPasep } from '../../strip/pis-pasep.js';\nimport type { ValidationResult } from '../../types/validation-result.js';\nimport { brandPisPasep } from '../../types/validation-result.js';\nimport { computeCheckDigit } from '../cnpj/modulo11.js';\nimport {\n PIS_PASEP_BASE_LENGTH,\n PIS_PASEP_DV_WEIGHTS,\n PIS_PASEP_LENGTH,\n} from './constants.js';\n\nexport {\n PIS_PASEP_GOLDEN_PRIMARY,\n PIS_PASEP_GOLDEN_PRIMARY_MASKED,\n PIS_PASEP_GOLDEN_SECONDARY,\n PIS_PASEP_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 isValidPisPasepChecksum(stripped: string): boolean {\n const base = stripped.slice(0, PIS_PASEP_BASE_LENGTH);\n const dvExpected = String(computeCheckDigit(base, PIS_PASEP_DV_WEIGHTS, digitValue));\n return stripped.charAt(PIS_PASEP_BASE_LENGTH) === dvExpected;\n}\n\nfunction validateStructure(input: string, stripped: string): FailedResult | null {\n if (stripped.length === 0) {\n return failure('EMPTY_INPUT', 'PIS/PASEP input is empty');\n }\n\n const withoutMask = input.replace(/[.-]/g, '');\n if (/[^0-9]/.test(withoutMask)) {\n return failure('INVALID_CHARACTER', 'PIS/PASEP contains invalid characters');\n }\n\n if (stripped.length !== PIS_PASEP_LENGTH) {\n return failure('INVALID_LENGTH', `PIS/PASEP must have ${PIS_PASEP_LENGTH} digits after normalization`);\n }\n\n if (hasRepeatedDigits(stripped)) {\n return failure('KNOWN_INVALID_PATTERN', 'PIS/PASEP with all identical digits is invalid');\n }\n\n return null;\n}\n\nexport function isValidPisPasep(input: string): boolean {\n return validatePisPasep(input).ok;\n}\n\nexport function validatePisPasep(input: string): ValidationResult {\n const stripped = stripPisPasep(input);\n const structural = validateStructure(input, stripped);\n if (structural) {\n return structural;\n }\n\n if (isValidPisPasepChecksum(stripped)) {\n return { ok: true, value: brandPisPasep(stripped), format: 'numeric' };\n }\n\n return failure('INVALID_CHECK_DIGIT', 'PIS/PASEP check digit is invalid');\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import { CPF_MASK_PATTERN } from './chunk-F6PTZY4O.js';
2
+
3
+ // src/core/cpf/mask.ts
4
+ function applyCpfMask(canonical) {
5
+ const match = CPF_MASK_PATTERN.exec(canonical);
6
+ if (!match) {
7
+ throw new Error("CPF must have exactly 11 digits to apply mask");
8
+ }
9
+ return `${match[1]}.${match[2]}.${match[3]}-${match[4]}`;
10
+ }
11
+
12
+ export { applyCpfMask };
13
+ //# sourceMappingURL=chunk-KQDLIGSG.js.map
14
+ //# sourceMappingURL=chunk-KQDLIGSG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/cpf/mask.ts"],"names":[],"mappings":";;;AAGO,SAAS,aAAa,SAAA,EAA2B;AACtD,EAAA,MAAM,KAAA,GAAQ,gBAAA,CAAiB,IAAA,CAAK,SAAS,CAAA;AAC7C,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,MAAM,+CAA+C,CAAA;AAAA,EACjE;AACA,EAAA,OAAO,CAAA,EAAG,KAAA,CAAM,CAAC,CAAC,IAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA,EAAI,MAAM,CAAC,CAAC,CAAA,CAAA,EAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AACxD","file":"chunk-KQDLIGSG.js","sourcesContent":["import { CPF_MASK_PATTERN } from './constants.js';\n\n/** Mask XXX.XXX.XXX-DD (BR-CPF-005). */\nexport function applyCpfMask(canonical: string): string {\n const match = CPF_MASK_PATTERN.exec(canonical);\n if (!match) {\n throw new Error('CPF must have exactly 11 digits to apply mask');\n }\n return `${match[1]}.${match[2]}.${match[3]}-${match[4]}`;\n}\n"]}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=chunk-LF2B4VPE.js.map
3
+ //# sourceMappingURL=chunk-LF2B4VPE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-LF2B4VPE.js"}
@@ -0,0 +1,288 @@
1
+ import { formatRenavam } from './chunk-CDGRHI7W.js';
2
+ import { computeRenavamCheckDigit, RENAVAM_BASE_LENGTH } from './chunk-WLE2ENQA.js';
3
+ import { formatTelefone } from './chunk-G2Y63PIF.js';
4
+ import { formatPisPasep } from './chunk-IQGRFAQV.js';
5
+ import { formatPlaca } from './chunk-G32U6YQ5.js';
6
+ import { formatCartaoCredito } from './chunk-XKY2CV3G.js';
7
+ import { formatCep } from './chunk-ZAUZRIOU.js';
8
+ import { formatCnh } from './chunk-6QJFMOIX.js';
9
+ import { formatCnpj } from './chunk-LYBFUKHR.js';
10
+ import { formatCpf } from './chunk-NHLLC6WH.js';
11
+ import { ANATEL_DDDS, validateTelefone } from './chunk-5UL3M7IU.js';
12
+ import { PIS_PASEP_DV_WEIGHTS, PIS_PASEP_BASE_LENGTH } from './chunk-KH7DWOUA.js';
13
+ import { PLACA_LEGACY_PATTERN, PLACA_MERCOSUL_PATTERN, validatePlaca } from './chunk-WPL47PWJ.js';
14
+ import { validateCartaoCredito } from './chunk-EPKHEW5V.js';
15
+ import { validateCep } from './chunk-2JJS46FM.js';
16
+ import { computeCnhCheckDigits, CNH_BASE_LENGTH } from './chunk-US4OLTJ2.js';
17
+ import { CNPJ_DV1_WEIGHTS, cnpjCharValue, CNPJ_DV2_WEIGHTS, CNPJ_BASE_LENGTH } from './chunk-YXELVV37.js';
18
+ import { CPF_DV1_WEIGHTS, CPF_DV2_WEIGHTS, CPF_BASE_LENGTH } from './chunk-F6PTZY4O.js';
19
+ import { computeCheckDigit } from './chunk-OTZHMJYE.js';
20
+
21
+ // src/generate/apply-mask.ts
22
+ function applyMask(type, value) {
23
+ switch (type) {
24
+ case "cpf": {
25
+ const result = formatCpf(value);
26
+ return result.ok ? result.formatted : value;
27
+ }
28
+ case "cnpj": {
29
+ const result = formatCnpj(value);
30
+ return result.ok ? result.formatted : value;
31
+ }
32
+ case "cep": {
33
+ const result = formatCep(value);
34
+ return result.ok ? result.formatted : value;
35
+ }
36
+ case "placa": {
37
+ const result = formatPlaca(value);
38
+ return result.ok ? result.formatted : value;
39
+ }
40
+ case "pis-pasep": {
41
+ const result = formatPisPasep(value);
42
+ return result.ok ? result.formatted : value;
43
+ }
44
+ case "renavam": {
45
+ const result = formatRenavam(value);
46
+ return result.ok ? result.formatted : value;
47
+ }
48
+ case "cnh": {
49
+ const result = formatCnh(value);
50
+ return result.ok ? result.formatted : value;
51
+ }
52
+ case "telefone": {
53
+ const result = formatTelefone(value);
54
+ return result.ok ? result.formatted : value;
55
+ }
56
+ case "cartao-credito": {
57
+ const result = formatCartaoCredito(value);
58
+ return result.ok ? result.formatted : value;
59
+ }
60
+ default: {
61
+ const _exhaustive = type;
62
+ return _exhaustive;
63
+ }
64
+ }
65
+ }
66
+
67
+ // src/generate/random.ts
68
+ function mulberry32(seed) {
69
+ let state = seed >>> 0;
70
+ return () => {
71
+ state = state + 1831565813 >>> 0;
72
+ let t = state;
73
+ t = Math.imul(t ^ t >>> 15, t | 1);
74
+ t ^= t + Math.imul(t ^ t >>> 7, t | 61);
75
+ return ((t ^ t >>> 14) >>> 0) / 4294967296;
76
+ };
77
+ }
78
+ function createRandomSource(seed) {
79
+ const nextFn = seed === void 0 ? () => Math.random() : mulberry32(seed);
80
+ return {
81
+ next: nextFn,
82
+ int(min, max) {
83
+ return Math.floor(nextFn() * (max - min + 1)) + min;
84
+ },
85
+ digit() {
86
+ return String(Math.floor(nextFn() * 10));
87
+ },
88
+ digits(count) {
89
+ let out = "";
90
+ for (let i = 0; i < count; i++) {
91
+ out += this.digit();
92
+ }
93
+ return out;
94
+ },
95
+ letter() {
96
+ const letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
97
+ return letters.charAt(this.int(0, letters.length - 1));
98
+ },
99
+ pick(items) {
100
+ return items[this.int(0, items.length - 1)];
101
+ }
102
+ };
103
+ }
104
+ function hasRepeatedChars(value) {
105
+ const first = value[0];
106
+ for (let i = 1; i < value.length; i++) {
107
+ if (value[i] !== first) {
108
+ return false;
109
+ }
110
+ }
111
+ return true;
112
+ }
113
+ function computeLuhnCheckDigit(partial) {
114
+ let sum = 0;
115
+ let double = true;
116
+ for (let i = partial.length - 1; i >= 0; i--) {
117
+ let digit = Number(partial.charAt(i));
118
+ if (double) {
119
+ digit *= 2;
120
+ if (digit > 9) {
121
+ digit -= 9;
122
+ }
123
+ }
124
+ sum += digit;
125
+ double = !double;
126
+ }
127
+ return String((10 - sum % 10) % 10);
128
+ }
129
+
130
+ // src/generate/index.ts
131
+ var CNPJ_ALNUM_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
132
+ var MAX_ATTEMPTS = 50;
133
+ function digitValue(char) {
134
+ return Number(char);
135
+ }
136
+ function randomBaseDigits(rng, length) {
137
+ for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {
138
+ const base = rng.digits(length);
139
+ if (!hasRepeatedChars(base)) {
140
+ return base;
141
+ }
142
+ }
143
+ return "123456789".slice(0, length).padEnd(length, "1");
144
+ }
145
+ function randomCnpjAlphanumericBase(rng) {
146
+ for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {
147
+ let base = "";
148
+ for (let i = 0; i < CNPJ_BASE_LENGTH; i++) {
149
+ base += CNPJ_ALNUM_CHARS.charAt(rng.int(0, CNPJ_ALNUM_CHARS.length - 1));
150
+ }
151
+ if (!hasRepeatedChars(base)) {
152
+ return base;
153
+ }
154
+ }
155
+ return "12ABC34501DE";
156
+ }
157
+ function generateCpfValue(rng) {
158
+ const base = randomBaseDigits(rng, CPF_BASE_LENGTH);
159
+ const dv1 = String(computeCheckDigit(base, CPF_DV1_WEIGHTS, digitValue));
160
+ const dv2 = String(computeCheckDigit(base + dv1, CPF_DV2_WEIGHTS, digitValue));
161
+ return base + dv1 + dv2;
162
+ }
163
+ function generateCnpjValue(rng, format) {
164
+ if (format === "alphanumeric") {
165
+ const base2 = randomCnpjAlphanumericBase(rng);
166
+ const dv12 = String(computeCheckDigit(base2, CNPJ_DV1_WEIGHTS, cnpjCharValue));
167
+ const dv22 = String(computeCheckDigit(base2 + dv12, CNPJ_DV2_WEIGHTS, cnpjCharValue));
168
+ return base2 + dv12 + dv22;
169
+ }
170
+ const base = randomBaseDigits(rng, CNPJ_BASE_LENGTH);
171
+ const dv1 = String(computeCheckDigit(base, CNPJ_DV1_WEIGHTS, digitValue));
172
+ const dv2 = String(computeCheckDigit(base + dv1, CNPJ_DV2_WEIGHTS, digitValue));
173
+ return base + dv1 + dv2;
174
+ }
175
+ function generateCepValue(rng) {
176
+ for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {
177
+ const value = rng.digits(8);
178
+ if (value !== "00000000" && validateCep(value).ok) {
179
+ return value;
180
+ }
181
+ }
182
+ return "01310100";
183
+ }
184
+ function generatePlacaValue(rng, format) {
185
+ const mode = format === "legacy" ? "legacy" : "mercosul";
186
+ for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {
187
+ const letters = rng.letter() + rng.letter() + rng.letter();
188
+ let candidate;
189
+ if (mode === "legacy") {
190
+ candidate = letters + rng.digits(4);
191
+ if (!PLACA_LEGACY_PATTERN.test(candidate)) {
192
+ continue;
193
+ }
194
+ } else {
195
+ candidate = letters + rng.digit() + rng.pick(["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]) + rng.digits(2);
196
+ if (!PLACA_MERCOSUL_PATTERN.test(candidate)) {
197
+ continue;
198
+ }
199
+ }
200
+ if (validatePlaca(candidate).ok) {
201
+ return candidate;
202
+ }
203
+ }
204
+ return mode === "legacy" ? "ABC1234" : "ABC1D23";
205
+ }
206
+ function generatePisValue(rng) {
207
+ const base = randomBaseDigits(rng, PIS_PASEP_BASE_LENGTH);
208
+ const dv = String(computeCheckDigit(base, PIS_PASEP_DV_WEIGHTS, digitValue));
209
+ return base + dv;
210
+ }
211
+ function generateRenavamValue(rng) {
212
+ const base = randomBaseDigits(rng, RENAVAM_BASE_LENGTH);
213
+ const dv = String(computeRenavamCheckDigit(base));
214
+ return base + dv;
215
+ }
216
+ function generateCnhValue(rng) {
217
+ const base = randomBaseDigits(rng, CNH_BASE_LENGTH);
218
+ return base + computeCnhCheckDigits(base);
219
+ }
220
+ function generateTelefoneValue(rng, format) {
221
+ const ddd = rng.pick(ANATEL_DDDS);
222
+ const useFixo = format === "fixo";
223
+ for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {
224
+ const local = useFixo ? String(rng.int(2, 5)) + rng.digits(7) : `9${rng.digits(8)}`;
225
+ const candidate = ddd + local;
226
+ if (validateTelefone(candidate).ok) {
227
+ return candidate;
228
+ }
229
+ }
230
+ return useFixo ? "1133333333" : "11999999999";
231
+ }
232
+ function generateCartaoValue(rng) {
233
+ const length = rng.int(13, 16);
234
+ for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {
235
+ const partial = rng.digits(length - 1);
236
+ if (hasRepeatedChars(partial)) {
237
+ continue;
238
+ }
239
+ const check = computeLuhnCheckDigit(partial);
240
+ const candidate = partial + check;
241
+ if (validateCartaoCredito(candidate).ok) {
242
+ return candidate;
243
+ }
244
+ }
245
+ return "4111111111111111";
246
+ }
247
+ function generate(type, options = {}) {
248
+ const rng = createRandomSource(options.seed);
249
+ let value;
250
+ switch (type) {
251
+ case "cpf":
252
+ value = generateCpfValue(rng);
253
+ break;
254
+ case "cnpj":
255
+ value = generateCnpjValue(rng, options.format);
256
+ break;
257
+ case "cep":
258
+ value = generateCepValue(rng);
259
+ break;
260
+ case "placa":
261
+ value = generatePlacaValue(rng, options.format);
262
+ break;
263
+ case "pis-pasep":
264
+ value = generatePisValue(rng);
265
+ break;
266
+ case "renavam":
267
+ value = generateRenavamValue(rng);
268
+ break;
269
+ case "cnh":
270
+ value = generateCnhValue(rng);
271
+ break;
272
+ case "telefone":
273
+ value = generateTelefoneValue(rng, options.format);
274
+ break;
275
+ case "cartao-credito":
276
+ value = generateCartaoValue(rng);
277
+ break;
278
+ default: {
279
+ const _exhaustive = type;
280
+ throw new Error(`Unsupported generatable type: ${String(_exhaustive)}`);
281
+ }
282
+ }
283
+ return options.masked ? applyMask(type, value) : value;
284
+ }
285
+
286
+ export { generate };
287
+ //# sourceMappingURL=chunk-LGD2JJBZ.js.map
288
+ //# sourceMappingURL=chunk-LGD2JJBZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/generate/apply-mask.ts","../src/generate/random.ts","../src/generate/index.ts"],"names":["base","dv1","dv2"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAWO,SAAS,SAAA,CAAU,MAA+B,KAAA,EAAuB;AAC9E,EAAA,QAAQ,IAAA;AAAM,IACZ,KAAK,KAAA,EAAO;AACV,MAAA,MAAM,MAAA,GAAS,UAAU,KAAK,CAAA;AAC9B,MAAA,OAAO,MAAA,CAAO,EAAA,GAAK,MAAA,CAAO,SAAA,GAAY,KAAA;AAAA,IACxC;AAAA,IACA,KAAK,MAAA,EAAQ;AACX,MAAA,MAAM,MAAA,GAAS,WAAW,KAAK,CAAA;AAC/B,MAAA,OAAO,MAAA,CAAO,EAAA,GAAK,MAAA,CAAO,SAAA,GAAY,KAAA;AAAA,IACxC;AAAA,IACA,KAAK,KAAA,EAAO;AACV,MAAA,MAAM,MAAA,GAAS,UAAU,KAAK,CAAA;AAC9B,MAAA,OAAO,MAAA,CAAO,EAAA,GAAK,MAAA,CAAO,SAAA,GAAY,KAAA;AAAA,IACxC;AAAA,IACA,KAAK,OAAA,EAAS;AACZ,MAAA,MAAM,MAAA,GAAS,YAAY,KAAK,CAAA;AAChC,MAAA,OAAO,MAAA,CAAO,EAAA,GAAK,MAAA,CAAO,SAAA,GAAY,KAAA;AAAA,IACxC;AAAA,IACA,KAAK,WAAA,EAAa;AAChB,MAAA,MAAM,MAAA,GAAS,eAAe,KAAK,CAAA;AACnC,MAAA,OAAO,MAAA,CAAO,EAAA,GAAK,MAAA,CAAO,SAAA,GAAY,KAAA;AAAA,IACxC;AAAA,IACA,KAAK,SAAA,EAAW;AACd,MAAA,MAAM,MAAA,GAAS,cAAc,KAAK,CAAA;AAClC,MAAA,OAAO,MAAA,CAAO,EAAA,GAAK,MAAA,CAAO,SAAA,GAAY,KAAA;AAAA,IACxC;AAAA,IACA,KAAK,KAAA,EAAO;AACV,MAAA,MAAM,MAAA,GAAS,UAAU,KAAK,CAAA;AAC9B,MAAA,OAAO,MAAA,CAAO,EAAA,GAAK,MAAA,CAAO,SAAA,GAAY,KAAA;AAAA,IACxC;AAAA,IACA,KAAK,UAAA,EAAY;AACf,MAAA,MAAM,MAAA,GAAS,eAAe,KAAK,CAAA;AACnC,MAAA,OAAO,MAAA,CAAO,EAAA,GAAK,MAAA,CAAO,SAAA,GAAY,KAAA;AAAA,IACxC;AAAA,IACA,KAAK,gBAAA,EAAkB;AACrB,MAAA,MAAM,MAAA,GAAS,oBAAoB,KAAK,CAAA;AACxC,MAAA,OAAO,MAAA,CAAO,EAAA,GAAK,MAAA,CAAO,SAAA,GAAY,KAAA;AAAA,IACxC;AAAA,IACA,SAAS;AACP,MAAA,MAAM,WAAA,GAAqB,IAAA;AAC3B,MAAA,OAAO,WAAA;AAAA,IACT;AAAA;AAEJ;;;AC1CA,SAAS,WAAW,IAAA,EAA4B;AAC9C,EAAA,IAAI,QAAQ,IAAA,KAAS,CAAA;AACrB,EAAA,OAAO,MAAM;AACX,IAAA,KAAA,GAAS,QAAQ,UAAA,KAAgB,CAAA;AACjC,IAAA,IAAI,CAAA,GAAI,KAAA;AACR,IAAA,CAAA,GAAI,KAAK,IAAA,CAAK,CAAA,GAAK,CAAA,KAAM,EAAA,EAAK,IAAI,CAAC,CAAA;AACnC,IAAA,CAAA,IAAK,IAAI,IAAA,CAAK,IAAA,CAAK,IAAK,CAAA,KAAM,CAAA,EAAI,IAAI,EAAE,CAAA;AACxC,IAAA,OAAA,CAAA,CAAS,CAAA,GAAK,CAAA,KAAM,EAAA,MAAS,CAAA,IAAK,UAAA;AAAA,EACpC,CAAA;AACF;AAEO,SAAS,mBAAmB,IAAA,EAA6B;AAC9D,EAAA,MAAM,MAAA,GAAS,SAAS,MAAA,GAAY,MAAM,KAAK,MAAA,EAAO,GAAI,WAAW,IAAI,CAAA;AAEzE,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,MAAA;AAAA,IACN,GAAA,CAAI,KAAa,GAAA,EAAqB;AACpC,MAAA,OAAO,KAAK,KAAA,CAAM,MAAA,MAAY,GAAA,GAAM,GAAA,GAAM,EAAE,CAAA,GAAI,GAAA;AAAA,IAClD,CAAA;AAAA,IACA,KAAA,GAAgB;AACd,MAAA,OAAO,OAAO,IAAA,CAAK,KAAA,CAAM,MAAA,EAAO,GAAI,EAAE,CAAC,CAAA;AAAA,IACzC,CAAA;AAAA,IACA,OAAO,KAAA,EAAuB;AAC5B,MAAA,IAAI,GAAA,GAAM,EAAA;AACV,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,EAAO,CAAA,EAAA,EAAK;AAC9B,QAAA,GAAA,IAAO,KAAK,KAAA,EAAM;AAAA,MACpB;AACA,MAAA,OAAO,GAAA;AAAA,IACT,CAAA;AAAA,IACA,MAAA,GAAiB;AACf,MAAA,MAAM,OAAA,GAAU,4BAAA;AAChB,MAAA,OAAO,OAAA,CAAQ,OAAO,IAAA,CAAK,GAAA,CAAI,GAAG,OAAA,CAAQ,MAAA,GAAS,CAAC,CAAC,CAAA;AAAA,IACvD,CAAA;AAAA,IACA,KAAQ,KAAA,EAAwB;AAC9B,MAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,GAAG,KAAA,CAAM,MAAA,GAAS,CAAC,CAAC,CAAA;AAAA,IAC5C;AAAA,GACF;AACF;AAEO,SAAS,iBAAiB,KAAA,EAAwB;AACvD,EAAA,MAAM,KAAA,GAAQ,MAAM,CAAC,CAAA;AACrB,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,CAAM,QAAQ,CAAA,EAAA,EAAK;AACrC,IAAA,IAAI,KAAA,CAAM,CAAC,CAAA,KAAM,KAAA,EAAO;AACtB,MAAA,OAAO,KAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,sBAAsB,OAAA,EAAyB;AAC7D,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,IAAI,MAAA,GAAS,IAAA;AACb,EAAA,KAAA,IAAS,IAAI,OAAA,CAAQ,MAAA,GAAS,CAAA,EAAG,CAAA,IAAK,GAAG,CAAA,EAAA,EAAK;AAC5C,IAAA,IAAI,KAAA,GAAQ,MAAA,CAAO,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAC,CAAA;AACpC,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,KAAA,IAAS,CAAA;AACT,MAAA,IAAI,QAAQ,CAAA,EAAG;AACb,QAAA,KAAA,IAAS,CAAA;AAAA,MACX;AAAA,IACF;AACA,IAAA,GAAA,IAAO,KAAA;AACP,IAAA,MAAA,GAAS,CAAC,MAAA;AAAA,EACZ;AACA,EAAA,OAAO,MAAA,CAAA,CAAQ,EAAA,GAAM,GAAA,GAAM,EAAA,IAAO,EAAE,CAAA;AACtC;;;AC5BA,IAAM,gBAAA,GAAmB,sCAAA;AACzB,IAAM,YAAA,GAAe,EAAA;AAErB,SAAS,WAAW,IAAA,EAAsB;AACxC,EAAA,OAAO,OAAO,IAAI,CAAA;AACpB;AAEA,SAAS,gBAAA,CAAiB,KAAmB,MAAA,EAAwB;AACnE,EAAA,KAAA,IAAS,OAAA,GAAU,CAAA,EAAG,OAAA,GAAU,YAAA,EAAc,OAAA,EAAA,EAAW;AACvD,IAAA,MAAM,IAAA,GAAO,GAAA,CAAI,MAAA,CAAO,MAAM,CAAA;AAC9B,IAAA,IAAI,CAAC,gBAAA,CAAiB,IAAI,CAAA,EAAG;AAC3B,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,YAAY,KAAA,CAAM,CAAA,EAAG,MAAM,CAAA,CAAE,MAAA,CAAO,QAAQ,GAAG,CAAA;AACxD;AAEA,SAAS,2BAA2B,GAAA,EAA2B;AAC7D,EAAA,KAAA,IAAS,OAAA,GAAU,CAAA,EAAG,OAAA,GAAU,YAAA,EAAc,OAAA,EAAA,EAAW;AACvD,IAAA,IAAI,IAAA,GAAO,EAAA;AACX,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,gBAAA,EAAkB,CAAA,EAAA,EAAK;AACzC,MAAA,IAAA,IAAQ,gBAAA,CAAiB,OAAO,GAAA,CAAI,GAAA,CAAI,GAAG,gBAAA,CAAiB,MAAA,GAAS,CAAC,CAAC,CAAA;AAAA,IACzE;AACA,IAAA,IAAI,CAAC,gBAAA,CAAiB,IAAI,CAAA,EAAG;AAC3B,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,cAAA;AACT;AAEA,SAAS,iBAAiB,GAAA,EAA2B;AACnD,EAAA,MAAM,IAAA,GAAO,gBAAA,CAAiB,GAAA,EAAK,eAAe,CAAA;AAClD,EAAA,MAAM,MAAM,MAAA,CAAO,iBAAA,CAAkB,IAAA,EAAM,eAAA,EAAiB,UAAU,CAAC,CAAA;AACvE,EAAA,MAAM,MAAM,MAAA,CAAO,iBAAA,CAAkB,OAAO,GAAA,EAAK,eAAA,EAAiB,UAAU,CAAC,CAAA;AAC7E,EAAA,OAAO,OAAO,GAAA,GAAM,GAAA;AACtB;AAEA,SAAS,iBAAA,CAAkB,KAAmB,MAAA,EAA2C;AACvF,EAAA,IAAI,WAAW,cAAA,EAAgB;AAC7B,IAAA,MAAMA,KAAAA,GAAO,2BAA2B,GAAG,CAAA;AAC3C,IAAA,MAAMC,OAAM,MAAA,CAAO,iBAAA,CAAkBD,KAAAA,EAAM,gBAAA,EAAkB,aAAa,CAAC,CAAA;AAC3E,IAAA,MAAME,OAAM,MAAA,CAAO,iBAAA,CAAkBF,QAAOC,IAAAA,EAAK,gBAAA,EAAkB,aAAa,CAAC,CAAA;AACjF,IAAA,OAAOD,QAAOC,IAAAA,GAAMC,IAAAA;AAAA,EACtB;AACA,EAAA,MAAM,IAAA,GAAO,gBAAA,CAAiB,GAAA,EAAK,gBAAgB,CAAA;AACnD,EAAA,MAAM,MAAM,MAAA,CAAO,iBAAA,CAAkB,IAAA,EAAM,gBAAA,EAAkB,UAAU,CAAC,CAAA;AACxE,EAAA,MAAM,MAAM,MAAA,CAAO,iBAAA,CAAkB,OAAO,GAAA,EAAK,gBAAA,EAAkB,UAAU,CAAC,CAAA;AAC9E,EAAA,OAAO,OAAO,GAAA,GAAM,GAAA;AACtB;AAEA,SAAS,iBAAiB,GAAA,EAA2B;AACnD,EAAA,KAAA,IAAS,OAAA,GAAU,CAAA,EAAG,OAAA,GAAU,YAAA,EAAc,OAAA,EAAA,EAAW;AACvD,IAAA,MAAM,KAAA,GAAQ,GAAA,CAAI,MAAA,CAAO,CAAC,CAAA;AAC1B,IAAA,IAAI,KAAA,KAAU,UAAA,IAAc,WAAA,CAAY,KAAK,EAAE,EAAA,EAAI;AACjD,MAAA,OAAO,KAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,UAAA;AACT;AAEA,SAAS,kBAAA,CAAmB,KAAmB,MAAA,EAA2C;AACxF,EAAA,MAAM,IAAA,GAAO,MAAA,KAAW,QAAA,GAAW,QAAA,GAAW,UAAA;AAC9C,EAAA,KAAA,IAAS,OAAA,GAAU,CAAA,EAAG,OAAA,GAAU,YAAA,EAAc,OAAA,EAAA,EAAW;AACvD,IAAA,MAAM,OAAA,GAAU,IAAI,MAAA,EAAO,GAAI,IAAI,MAAA,EAAO,GAAI,IAAI,MAAA,EAAO;AACzD,IAAA,IAAI,SAAA;AACJ,IAAA,IAAI,SAAS,QAAA,EAAU;AACrB,MAAA,SAAA,GAAY,OAAA,GAAU,GAAA,CAAI,MAAA,CAAO,CAAC,CAAA;AAClC,MAAA,IAAI,CAAC,oBAAA,CAAqB,IAAA,CAAK,SAAS,CAAA,EAAG;AACzC,QAAA;AAAA,MACF;AAAA,IACF,CAAA,MAAO;AACL,MAAA,SAAA,GACE,OAAA,GACA,GAAA,CAAI,KAAA,EAAM,GACV,GAAA,CAAI,IAAA,CAAK,CAAC,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAC,CAAA,GAC7G,GAAA,CAAI,OAAO,CAAC,CAAA;AACd,MAAA,IAAI,CAAC,sBAAA,CAAuB,IAAA,CAAK,SAAS,CAAA,EAAG;AAC3C,QAAA;AAAA,MACF;AAAA,IACF;AACA,IAAA,IAAI,aAAA,CAAc,SAAS,CAAA,CAAE,EAAA,EAAI;AAC/B,MAAA,OAAO,SAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,IAAA,KAAS,WAAW,SAAA,GAAY,SAAA;AACzC;AAEA,SAAS,iBAAiB,GAAA,EAA2B;AACnD,EAAA,MAAM,IAAA,GAAO,gBAAA,CAAiB,GAAA,EAAK,qBAAqB,CAAA;AACxD,EAAA,MAAM,KAAK,MAAA,CAAO,iBAAA,CAAkB,IAAA,EAAM,oBAAA,EAAsB,UAAU,CAAC,CAAA;AAC3E,EAAA,OAAO,IAAA,GAAO,EAAA;AAChB;AAEA,SAAS,qBAAqB,GAAA,EAA2B;AACvD,EAAA,MAAM,IAAA,GAAO,gBAAA,CAAiB,GAAA,EAAK,mBAAmB,CAAA;AACtD,EAAA,MAAM,EAAA,GAAK,MAAA,CAAO,wBAAA,CAAyB,IAAI,CAAC,CAAA;AAChD,EAAA,OAAO,IAAA,GAAO,EAAA;AAChB;AAEA,SAAS,iBAAiB,GAAA,EAA2B;AACnD,EAAA,MAAM,IAAA,GAAO,gBAAA,CAAiB,GAAA,EAAK,eAAe,CAAA;AAClD,EAAA,OAAO,IAAA,GAAO,sBAAsB,IAAI,CAAA;AAC1C;AAEA,SAAS,qBAAA,CAAsB,KAAmB,MAAA,EAA2C;AAC3F,EAAA,MAAM,GAAA,GAAM,GAAA,CAAI,IAAA,CAAK,WAAW,CAAA;AAChC,EAAA,MAAM,UAAU,MAAA,KAAW,MAAA;AAC3B,EAAA,KAAA,IAAS,OAAA,GAAU,CAAA,EAAG,OAAA,GAAU,YAAA,EAAc,OAAA,EAAA,EAAW;AACvD,IAAA,MAAM,QAAQ,OAAA,GAAU,MAAA,CAAO,GAAA,CAAI,GAAA,CAAI,GAAG,CAAC,CAAC,CAAA,GAAI,GAAA,CAAI,OAAO,CAAC,CAAA,GAAI,IAAI,GAAA,CAAI,MAAA,CAAO,CAAC,CAAC,CAAA,CAAA;AACjF,IAAA,MAAM,YAAY,GAAA,GAAM,KAAA;AACxB,IAAA,IAAI,gBAAA,CAAiB,SAAS,CAAA,CAAE,EAAA,EAAI;AAClC,MAAA,OAAO,SAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,UAAU,YAAA,GAAe,aAAA;AAClC;AAEA,SAAS,oBAAoB,GAAA,EAA2B;AACtD,EAAA,MAAM,MAAA,GAAS,GAAA,CAAI,GAAA,CAAI,EAAA,EAAI,EAAE,CAAA;AAC7B,EAAA,KAAA,IAAS,OAAA,GAAU,CAAA,EAAG,OAAA,GAAU,YAAA,EAAc,OAAA,EAAA,EAAW;AACvD,IAAA,MAAM,OAAA,GAAU,GAAA,CAAI,MAAA,CAAO,MAAA,GAAS,CAAC,CAAA;AACrC,IAAA,IAAI,gBAAA,CAAiB,OAAO,CAAA,EAAG;AAC7B,MAAA;AAAA,IACF;AACA,IAAA,MAAM,KAAA,GAAQ,sBAAsB,OAAO,CAAA;AAC3C,IAAA,MAAM,YAAY,OAAA,GAAU,KAAA;AAC5B,IAAA,IAAI,qBAAA,CAAsB,SAAS,CAAA,CAAE,EAAA,EAAI;AACvC,MAAA,OAAO,SAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,kBAAA;AACT;AAEO,SAAS,QAAA,CAAS,IAAA,EAA+B,OAAA,GAA2B,EAAC,EAAW;AAC7F,EAAA,MAAM,GAAA,GAAM,kBAAA,CAAmB,OAAA,CAAQ,IAAI,CAAA;AAC3C,EAAA,IAAI,KAAA;AAEJ,EAAA,QAAQ,IAAA;AAAM,IACZ,KAAK,KAAA;AACH,MAAA,KAAA,GAAQ,iBAAiB,GAAG,CAAA;AAC5B,MAAA;AAAA,IACF,KAAK,MAAA;AACH,MAAA,KAAA,GAAQ,iBAAA,CAAkB,GAAA,EAAK,OAAA,CAAQ,MAAM,CAAA;AAC7C,MAAA;AAAA,IACF,KAAK,KAAA;AACH,MAAA,KAAA,GAAQ,iBAAiB,GAAG,CAAA;AAC5B,MAAA;AAAA,IACF,KAAK,OAAA;AACH,MAAA,KAAA,GAAQ,kBAAA,CAAmB,GAAA,EAAK,OAAA,CAAQ,MAAM,CAAA;AAC9C,MAAA;AAAA,IACF,KAAK,WAAA;AACH,MAAA,KAAA,GAAQ,iBAAiB,GAAG,CAAA;AAC5B,MAAA;AAAA,IACF,KAAK,SAAA;AACH,MAAA,KAAA,GAAQ,qBAAqB,GAAG,CAAA;AAChC,MAAA;AAAA,IACF,KAAK,KAAA;AACH,MAAA,KAAA,GAAQ,iBAAiB,GAAG,CAAA;AAC5B,MAAA;AAAA,IACF,KAAK,UAAA;AACH,MAAA,KAAA,GAAQ,qBAAA,CAAsB,GAAA,EAAK,OAAA,CAAQ,MAAM,CAAA;AACjD,MAAA;AAAA,IACF,KAAK,gBAAA;AACH,MAAA,KAAA,GAAQ,oBAAoB,GAAG,CAAA;AAC/B,MAAA;AAAA,IACF,SAAS;AACP,MAAA,MAAM,WAAA,GAAqB,IAAA;AAC3B,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,8BAAA,EAAiC,MAAA,CAAO,WAAW,CAAC,CAAA,CAAE,CAAA;AAAA,IACxE;AAAA;AAGF,EAAA,OAAO,OAAA,CAAQ,MAAA,GAAS,SAAA,CAAU,IAAA,EAAM,KAAK,CAAA,GAAI,KAAA;AACnD","file":"chunk-LGD2JJBZ.js","sourcesContent":["import { 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 { formatPisPasep } from '../format/pis-pasep.js';\nimport { formatPlaca } from '../format/placa.js';\nimport { formatRenavam } from '../format/renavam.js';\nimport { formatTelefone } from '../format/telefone.js';\nimport type { GeneratableDocumentType } from './index.js';\n\nexport function applyMask(type: GeneratableDocumentType, value: string): string {\n switch (type) {\n case 'cpf': {\n const result = formatCpf(value);\n return result.ok ? result.formatted : value;\n }\n case 'cnpj': {\n const result = formatCnpj(value);\n return result.ok ? result.formatted : value;\n }\n case 'cep': {\n const result = formatCep(value);\n return result.ok ? result.formatted : value;\n }\n case 'placa': {\n const result = formatPlaca(value);\n return result.ok ? result.formatted : value;\n }\n case 'pis-pasep': {\n const result = formatPisPasep(value);\n return result.ok ? result.formatted : value;\n }\n case 'renavam': {\n const result = formatRenavam(value);\n return result.ok ? result.formatted : value;\n }\n case 'cnh': {\n const result = formatCnh(value);\n return result.ok ? result.formatted : value;\n }\n case 'telefone': {\n const result = formatTelefone(value);\n return result.ok ? result.formatted : value;\n }\n case 'cartao-credito': {\n const result = formatCartaoCredito(value);\n return result.ok ? result.formatted : value;\n }\n default: {\n const _exhaustive: never = type;\n return _exhaustive;\n }\n }\n}\n","/**\n * Mulberry32 PRNG — deterministic when seed is provided (BR-GENERATE-001).\n */\nexport type RandomSource = {\n next(): number;\n int(min: number, max: number): number;\n digit(): string;\n digits(count: number): string;\n letter(): string;\n pick<T>(items: readonly T[]): T;\n};\n\nfunction mulberry32(seed: number): () => number {\n let state = seed >>> 0;\n return () => {\n state = (state + 0x6d2b79f5) >>> 0;\n let t = state;\n t = Math.imul(t ^ (t >>> 15), t | 1);\n t ^= t + Math.imul(t ^ (t >>> 7), t | 61);\n return ((t ^ (t >>> 14)) >>> 0) / 4294967296;\n };\n}\n\nexport function createRandomSource(seed?: number): RandomSource {\n const nextFn = seed === undefined ? () => Math.random() : mulberry32(seed);\n\n return {\n next: nextFn,\n int(min: number, max: number): number {\n return Math.floor(nextFn() * (max - min + 1)) + min;\n },\n digit(): string {\n return String(Math.floor(nextFn() * 10));\n },\n digits(count: number): string {\n let out = '';\n for (let i = 0; i < count; i++) {\n out += this.digit();\n }\n return out;\n },\n letter(): string {\n const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n return letters.charAt(this.int(0, letters.length - 1));\n },\n pick<T>(items: readonly T[]): T {\n return items[this.int(0, items.length - 1)];\n },\n };\n}\n\nexport function hasRepeatedChars(value: string): boolean {\n const first = value[0];\n for (let i = 1; i < value.length; i++) {\n if (value[i] !== first) {\n return false;\n }\n }\n return true;\n}\n\nexport function computeLuhnCheckDigit(partial: string): string {\n let sum = 0;\n let double = true;\n for (let i = partial.length - 1; i >= 0; i--) {\n let digit = Number(partial.charAt(i));\n if (double) {\n digit *= 2;\n if (digit > 9) {\n digit -= 9;\n }\n }\n sum += digit;\n double = !double;\n }\n return String((10 - (sum % 10)) % 10);\n}\n","/**\n * Synthetic document generation — test fixtures only (BR-GENERATE-001).\n * Reuses existing modulo 11 / Luhn compute helpers — never duplicates DV logic.\n * @see docs/VALIDATION-RULES.md\n */\nimport { computeCheckDigit } from '../core/cnpj/modulo11.js';\nimport { cnpjCharValue } from '../core/cnpj/ascii-value.js';\nimport { CNPJ_BASE_LENGTH, CNPJ_DV1_WEIGHTS, CNPJ_DV2_WEIGHTS } from '../core/cnpj/constants.js';\nimport { computeCnhCheckDigits } from '../core/cnh/check-digits.js';\nimport { CNH_BASE_LENGTH } from '../core/cnh/constants.js';\nimport { CPF_BASE_LENGTH, CPF_DV1_WEIGHTS, CPF_DV2_WEIGHTS } from '../core/cpf/constants.js';\nimport { PIS_PASEP_BASE_LENGTH, PIS_PASEP_DV_WEIGHTS } from '../core/pis-pasep/constants.js';\nimport { computeRenavamCheckDigit } from '../core/renavam/check-digits.js';\nimport { RENAVAM_BASE_LENGTH } from '../core/renavam/constants.js';\nimport { PLACA_LEGACY_PATTERN, PLACA_MERCOSUL_PATTERN } from '../core/placa/constants.js';\nimport { ANATEL_DDDS } from '../core/telefone/constants.js';\nimport { validateCep } from '../core/cep/index.js';\nimport { validateCartaoCredito } from '../core/cartao-credito/index.js';\nimport { validatePlaca } from '../core/placa/index.js';\nimport { validateTelefone } from '../core/telefone/index.js';\nimport { applyMask } from './apply-mask.js';\nimport { computeLuhnCheckDigit, createRandomSource, hasRepeatedChars, type RandomSource } from './random.js';\n\nexport type GeneratableDocumentType =\n | 'cpf'\n | 'cnpj'\n | 'cep'\n | 'placa'\n | 'pis-pasep'\n | 'renavam'\n | 'cnh'\n | 'telefone'\n | 'cartao-credito';\n\nexport type GenerateFormat =\n | 'numeric'\n | 'alphanumeric'\n | 'legacy'\n | 'mercosul'\n | 'celular'\n | 'fixo';\n\nexport type GenerateOptions = {\n format?: GenerateFormat;\n masked?: boolean;\n seed?: number;\n};\n\nconst CNPJ_ALNUM_CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';\nconst MAX_ATTEMPTS = 50;\n\nfunction digitValue(char: string): number {\n return Number(char);\n}\n\nfunction randomBaseDigits(rng: RandomSource, length: number): string {\n for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {\n const base = rng.digits(length);\n if (!hasRepeatedChars(base)) {\n return base;\n }\n }\n return '123456789'.slice(0, length).padEnd(length, '1');\n}\n\nfunction randomCnpjAlphanumericBase(rng: RandomSource): string {\n for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {\n let base = '';\n for (let i = 0; i < CNPJ_BASE_LENGTH; i++) {\n base += CNPJ_ALNUM_CHARS.charAt(rng.int(0, CNPJ_ALNUM_CHARS.length - 1));\n }\n if (!hasRepeatedChars(base)) {\n return base;\n }\n }\n return '12ABC34501DE';\n}\n\nfunction generateCpfValue(rng: RandomSource): string {\n const base = randomBaseDigits(rng, CPF_BASE_LENGTH);\n const dv1 = String(computeCheckDigit(base, CPF_DV1_WEIGHTS, digitValue));\n const dv2 = String(computeCheckDigit(base + dv1, CPF_DV2_WEIGHTS, digitValue));\n return base + dv1 + dv2;\n}\n\nfunction generateCnpjValue(rng: RandomSource, format: GenerateOptions['format']): string {\n if (format === 'alphanumeric') {\n const base = randomCnpjAlphanumericBase(rng);\n const dv1 = String(computeCheckDigit(base, CNPJ_DV1_WEIGHTS, cnpjCharValue));\n const dv2 = String(computeCheckDigit(base + dv1, CNPJ_DV2_WEIGHTS, cnpjCharValue));\n return base + dv1 + dv2;\n }\n const base = randomBaseDigits(rng, CNPJ_BASE_LENGTH);\n const dv1 = String(computeCheckDigit(base, CNPJ_DV1_WEIGHTS, digitValue));\n const dv2 = String(computeCheckDigit(base + dv1, CNPJ_DV2_WEIGHTS, digitValue));\n return base + dv1 + dv2;\n}\n\nfunction generateCepValue(rng: RandomSource): string {\n for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {\n const value = rng.digits(8);\n if (value !== '00000000' && validateCep(value).ok) {\n return value;\n }\n }\n return '01310100';\n}\n\nfunction generatePlacaValue(rng: RandomSource, format: GenerateOptions['format']): string {\n const mode = format === 'legacy' ? 'legacy' : 'mercosul';\n for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {\n const letters = rng.letter() + rng.letter() + rng.letter();\n let candidate: string;\n if (mode === 'legacy') {\n candidate = letters + rng.digits(4);\n if (!PLACA_LEGACY_PATTERN.test(candidate)) {\n continue;\n }\n } else {\n candidate =\n letters +\n rng.digit() +\n rng.pick(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']) +\n rng.digits(2);\n if (!PLACA_MERCOSUL_PATTERN.test(candidate)) {\n continue;\n }\n }\n if (validatePlaca(candidate).ok) {\n return candidate;\n }\n }\n return mode === 'legacy' ? 'ABC1234' : 'ABC1D23';\n}\n\nfunction generatePisValue(rng: RandomSource): string {\n const base = randomBaseDigits(rng, PIS_PASEP_BASE_LENGTH);\n const dv = String(computeCheckDigit(base, PIS_PASEP_DV_WEIGHTS, digitValue));\n return base + dv;\n}\n\nfunction generateRenavamValue(rng: RandomSource): string {\n const base = randomBaseDigits(rng, RENAVAM_BASE_LENGTH);\n const dv = String(computeRenavamCheckDigit(base));\n return base + dv;\n}\n\nfunction generateCnhValue(rng: RandomSource): string {\n const base = randomBaseDigits(rng, CNH_BASE_LENGTH);\n return base + computeCnhCheckDigits(base);\n}\n\nfunction generateTelefoneValue(rng: RandomSource, format: GenerateOptions['format']): string {\n const ddd = rng.pick(ANATEL_DDDS);\n const useFixo = format === 'fixo';\n for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {\n const local = useFixo ? String(rng.int(2, 5)) + rng.digits(7) : `9${rng.digits(8)}`;\n const candidate = ddd + local;\n if (validateTelefone(candidate).ok) {\n return candidate;\n }\n }\n return useFixo ? '1133333333' : '11999999999';\n}\n\nfunction generateCartaoValue(rng: RandomSource): string {\n const length = rng.int(13, 16);\n for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {\n const partial = rng.digits(length - 1);\n if (hasRepeatedChars(partial)) {\n continue;\n }\n const check = computeLuhnCheckDigit(partial);\n const candidate = partial + check;\n if (validateCartaoCredito(candidate).ok) {\n return candidate;\n }\n }\n return '4111111111111111';\n}\n\nexport function generate(type: GeneratableDocumentType, options: GenerateOptions = {}): string {\n const rng = createRandomSource(options.seed);\n let value: string;\n\n switch (type) {\n case 'cpf':\n value = generateCpfValue(rng);\n break;\n case 'cnpj':\n value = generateCnpjValue(rng, options.format);\n break;\n case 'cep':\n value = generateCepValue(rng);\n break;\n case 'placa':\n value = generatePlacaValue(rng, options.format);\n break;\n case 'pis-pasep':\n value = generatePisValue(rng);\n break;\n case 'renavam':\n value = generateRenavamValue(rng);\n break;\n case 'cnh':\n value = generateCnhValue(rng);\n break;\n case 'telefone':\n value = generateTelefoneValue(rng, options.format);\n break;\n case 'cartao-credito':\n value = generateCartaoValue(rng);\n break;\n default: {\n const _exhaustive: never = type;\n throw new Error(`Unsupported generatable type: ${String(_exhaustive)}`);\n }\n }\n\n return options.masked ? applyMask(type, value) : value;\n}\n\nconst repeatingRng: RandomSource = {\n next: () => 0,\n int: (min: number) => min,\n digit: () => '1',\n digits: (count: number) => '1'.repeat(count),\n letter: () => 'A',\n pick: <T>(items: readonly T[]) => items[0],\n};\n\nconst zeroRng: RandomSource = {\n ...repeatingRng,\n digits: (count: number) => '0'.repeat(count),\n};\n\n/** Always fails placa pattern checks so fallback constants are returned. */\nconst exhaustPlacaLegacyRng: RandomSource = {\n ...repeatingRng,\n digits: (count: number) => '1'.repeat(Math.max(0, count - 1)),\n};\n\nconst exhaustPlacaMercosulRng: RandomSource = {\n ...repeatingRng,\n digits: () => '1',\n};\n\n/** Always fails telefone validation so fallback constants are returned. */\nconst exhaustTelefoneRng: RandomSource = {\n ...repeatingRng,\n int: () => 0,\n digits: () => '0',\n};\n\n/** @internal Test hooks for generator fallback branches. */\nexport const __generateTesting = {\n randomBaseDigits: (length: number) => randomBaseDigits(repeatingRng, length),\n randomCnpjAlphanumericBase: () => randomCnpjAlphanumericBase(repeatingRng),\n generateCpfValue: () => generateCpfValue(repeatingRng),\n generateCnpjValue: (format?: GenerateOptions['format']) => generateCnpjValue(repeatingRng, format),\n generateCepValue: () => generateCepValue(zeroRng),\n generateCartaoValue: () => generateCartaoValue(repeatingRng),\n generatePlacaValue: (format?: GenerateOptions['format']) =>\n generatePlacaValue(format === 'legacy' ? exhaustPlacaLegacyRng : exhaustPlacaMercosulRng, format),\n generateTelefoneValue: (format?: GenerateOptions['format']) =>\n generateTelefoneValue(exhaustTelefoneRng, format),\n generatePisValue: () => generatePisValue(repeatingRng),\n generateRenavamValue: () => generateRenavamValue(repeatingRng),\n generateCnhValue: () => generateCnhValue(repeatingRng),\n touchAllRngMethods: () => {\n for (const rng of [repeatingRng, zeroRng, exhaustPlacaLegacyRng, exhaustPlacaMercosulRng, exhaustTelefoneRng]) {\n rng.next();\n rng.int(1, 2);\n rng.digit();\n rng.digits(3);\n rng.letter();\n rng.pick(['a']);\n }\n },\n};\n"]}
@@ -1,4 +1,5 @@
1
- import { validateCnpj, applyCnpjMask } from './chunk-UE4PVN6Y.js';
1
+ import { applyCnpjMask } from './chunk-XUO7FV6Z.js';
2
+ import { validateCnpj } from './chunk-YXELVV37.js';
2
3
 
3
4
  // src/format/cnpj.ts
4
5
  function formatCnpj(input) {
@@ -16,5 +17,5 @@ function formatCnpjAlphanumeric(input) {
16
17
  }
17
18
 
18
19
  export { formatCnpj, formatCnpjAlphanumeric, formatCnpjNumeric };
19
- //# sourceMappingURL=chunk-MQT25QN7.js.map
20
- //# sourceMappingURL=chunk-MQT25QN7.js.map
20
+ //# sourceMappingURL=chunk-LYBFUKHR.js.map
21
+ //# sourceMappingURL=chunk-LYBFUKHR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/format/cnpj.ts"],"names":[],"mappings":";;;;AAIO,SAAS,WAAW,KAAA,EAA6B;AACtD,EAAA,MAAM,MAAA,GAAS,aAAa,KAAK,CAAA;AACjC,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,aAAA,CAAc,MAAA,CAAO,KAAK,CAAA,EAAE;AAC5D;AAEO,SAAS,kBAAkB,KAAA,EAA6B;AAC7D,EAAA,OAAO,WAAW,KAAK,CAAA;AACzB;AAEO,SAAS,uBAAuB,KAAA,EAA6B;AAClE,EAAA,OAAO,WAAW,KAAK,CAAA;AACzB","file":"chunk-LYBFUKHR.js","sourcesContent":["import { applyCnpjMask } from '../core/cnpj/mask.js';\nimport { validateCnpj } from '../core/cnpj/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatCnpj(input: string): FormatResult {\n const result = validateCnpj(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyCnpjMask(result.value) };\n}\n\nexport function formatCnpjNumeric(input: string): FormatResult {\n return formatCnpj(input);\n}\n\nexport function formatCnpjAlphanumeric(input: string): FormatResult {\n return formatCnpj(input);\n}\n"]}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=chunk-MFNJTAUS.js.map
3
+ //# sourceMappingURL=chunk-MFNJTAUS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-MFNJTAUS.js"}