@br-validators/core 0.10.0-alpha.0 → 0.12.0-alpha.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 (177) hide show
  1. package/README.md +6 -3
  2. package/dist/boleto.d.ts +2 -2
  3. package/dist/boleto.js +3 -2
  4. package/dist/brcode.d.ts +79 -0
  5. package/dist/brcode.js +13 -0
  6. package/dist/brcode.js.map +1 -0
  7. package/dist/cartao-credito.d.ts +2 -2
  8. package/dist/cartao-credito.js +4 -2
  9. package/dist/cep.d.ts +2 -2
  10. package/dist/cep.js +6 -3
  11. package/dist/chunk-2CNYSY3Z.js +3 -0
  12. package/dist/chunk-2CNYSY3Z.js.map +1 -0
  13. package/dist/{chunk-RMKTJQBB.js → chunk-2JJS46FM.js} +5 -23
  14. package/dist/chunk-2JJS46FM.js.map +1 -0
  15. package/dist/{chunk-Z4F75QEC.js → chunk-3QP6R46N.js} +119 -496
  16. package/dist/chunk-3QP6R46N.js.map +1 -0
  17. package/dist/chunk-4SNBZFS5.js +8 -0
  18. package/dist/chunk-4SNBZFS5.js.map +1 -0
  19. package/dist/{chunk-AKJHIJ5E.js → chunk-4W4OKLSZ.js} +4 -25
  20. package/dist/chunk-4W4OKLSZ.js.map +1 -0
  21. package/dist/chunk-4Y2FBO57.js +26 -0
  22. package/dist/chunk-4Y2FBO57.js.map +1 -0
  23. package/dist/chunk-5UL3M7IU.js +192 -0
  24. package/dist/chunk-5UL3M7IU.js.map +1 -0
  25. package/dist/chunk-6QJFMOIX.js +22 -0
  26. package/dist/chunk-6QJFMOIX.js.map +1 -0
  27. package/dist/chunk-7ZL7PZII.js +187 -0
  28. package/dist/chunk-7ZL7PZII.js.map +1 -0
  29. package/dist/chunk-BFZPCEYB.js +14 -0
  30. package/dist/chunk-BFZPCEYB.js.map +1 -0
  31. package/dist/chunk-CDGRHI7W.js +22 -0
  32. package/dist/chunk-CDGRHI7W.js.map +1 -0
  33. package/dist/chunk-CQPM43VV.js +3 -0
  34. package/dist/chunk-CQPM43VV.js.map +1 -0
  35. package/dist/chunk-D36RM7OD.js +207 -0
  36. package/dist/chunk-D36RM7OD.js.map +1 -0
  37. package/dist/{chunk-54DTXC6V.js → chunk-EPKHEW5V.js} +4 -13
  38. package/dist/chunk-EPKHEW5V.js.map +1 -0
  39. package/dist/{chunk-PBNVKDCF.js → chunk-F6PTZY4O.js} +5 -14
  40. package/dist/chunk-F6PTZY4O.js.map +1 -0
  41. package/dist/chunk-FXLVNCG3.js +26 -0
  42. package/dist/chunk-FXLVNCG3.js.map +1 -0
  43. package/dist/chunk-G24G7WR5.js +3 -0
  44. package/dist/chunk-G24G7WR5.js.map +1 -0
  45. package/dist/chunk-G2Y63PIF.js +24 -0
  46. package/dist/chunk-G2Y63PIF.js.map +1 -0
  47. package/dist/chunk-G32U6YQ5.js +14 -0
  48. package/dist/chunk-G32U6YQ5.js.map +1 -0
  49. package/dist/chunk-GRDUTHNX.js +28 -0
  50. package/dist/chunk-GRDUTHNX.js.map +1 -0
  51. package/dist/chunk-GVK6IMBF.js +3 -0
  52. package/dist/chunk-GVK6IMBF.js.map +1 -0
  53. package/dist/chunk-IQGRFAQV.js +23 -0
  54. package/dist/chunk-IQGRFAQV.js.map +1 -0
  55. package/dist/chunk-JQABTHUJ.js +3 -0
  56. package/dist/chunk-JQABTHUJ.js.map +1 -0
  57. package/dist/{chunk-OWJ5HN4T.js → chunk-KH7DWOUA.js} +5 -23
  58. package/dist/chunk-KH7DWOUA.js.map +1 -0
  59. package/dist/chunk-KQDLIGSG.js +14 -0
  60. package/dist/chunk-KQDLIGSG.js.map +1 -0
  61. package/dist/chunk-LF2B4VPE.js +3 -0
  62. package/dist/chunk-LF2B4VPE.js.map +1 -0
  63. package/dist/chunk-LGD2JJBZ.js +288 -0
  64. package/dist/chunk-LGD2JJBZ.js.map +1 -0
  65. package/dist/{chunk-7FOWIH6F.js → chunk-LYBFUKHR.js} +4 -3
  66. package/dist/chunk-LYBFUKHR.js.map +1 -0
  67. package/dist/chunk-MFNJTAUS.js +3 -0
  68. package/dist/chunk-MFNJTAUS.js.map +1 -0
  69. package/dist/{chunk-SE33CFGM.js → chunk-MK7OJUF5.js} +8 -29
  70. package/dist/chunk-MK7OJUF5.js.map +1 -0
  71. package/dist/chunk-MLPXW7N2.js +226 -0
  72. package/dist/chunk-MLPXW7N2.js.map +1 -0
  73. package/dist/chunk-MSLJF2FM.js +56 -0
  74. package/dist/chunk-MSLJF2FM.js.map +1 -0
  75. package/dist/{chunk-RZ2JG5PP.js → chunk-NHLLC6WH.js} +4 -3
  76. package/dist/chunk-NHLLC6WH.js.map +1 -0
  77. package/dist/chunk-OCYXNLHO.js +307 -0
  78. package/dist/chunk-OCYXNLHO.js.map +1 -0
  79. package/dist/{chunk-B2TDI3YS.js → chunk-OTZHMJYE.js} +3 -3
  80. package/dist/{chunk-B2TDI3YS.js.map → chunk-OTZHMJYE.js.map} +1 -1
  81. package/dist/chunk-P55H5YRX.js +3 -0
  82. package/dist/chunk-P55H5YRX.js.map +1 -0
  83. package/dist/chunk-PB4RIS6G.js +27 -0
  84. package/dist/chunk-PB4RIS6G.js.map +1 -0
  85. package/dist/chunk-QGMVUIDD.js +3 -0
  86. package/dist/chunk-QGMVUIDD.js.map +1 -0
  87. package/dist/chunk-RYGAK7PB.js +3 -0
  88. package/dist/chunk-RYGAK7PB.js.map +1 -0
  89. package/dist/chunk-US4OLTJ2.js +104 -0
  90. package/dist/chunk-US4OLTJ2.js.map +1 -0
  91. package/dist/chunk-WCQUQ2WX.js +241 -0
  92. package/dist/chunk-WCQUQ2WX.js.map +1 -0
  93. package/dist/chunk-WLE2ENQA.js +86 -0
  94. package/dist/chunk-WLE2ENQA.js.map +1 -0
  95. package/dist/{chunk-YY4M2YS6.js → chunk-WPL47PWJ.js} +5 -14
  96. package/dist/chunk-WPL47PWJ.js.map +1 -0
  97. package/dist/chunk-XKY2CV3G.js +14 -0
  98. package/dist/chunk-XKY2CV3G.js.map +1 -0
  99. package/dist/chunk-XUO7FV6Z.js +14 -0
  100. package/dist/chunk-XUO7FV6Z.js.map +1 -0
  101. package/dist/chunk-Y2KUN2D3.js +3 -0
  102. package/dist/chunk-Y2KUN2D3.js.map +1 -0
  103. package/dist/chunk-Y6IW2LMW.js +460 -0
  104. package/dist/chunk-Y6IW2LMW.js.map +1 -0
  105. package/dist/chunk-YGA5W54J.js +3 -0
  106. package/dist/chunk-YGA5W54J.js.map +1 -0
  107. package/dist/{chunk-M66MGLHE.js → chunk-YXELVV37.js} +5 -14
  108. package/dist/chunk-YXELVV37.js.map +1 -0
  109. package/dist/chunk-YYHS5WQN.js +28 -0
  110. package/dist/chunk-YYHS5WQN.js.map +1 -0
  111. package/dist/chunk-ZAUZRIOU.js +23 -0
  112. package/dist/chunk-ZAUZRIOU.js.map +1 -0
  113. package/dist/chunk-ZH4RJNG7.js +3 -0
  114. package/dist/chunk-ZH4RJNG7.js.map +1 -0
  115. package/dist/cnh.d.ts +39 -0
  116. package/dist/cnh.js +11 -0
  117. package/dist/cnh.js.map +1 -0
  118. package/dist/cnpj.d.ts +2 -2
  119. package/dist/cnpj.js +6 -4
  120. package/dist/cpf.d.ts +2 -2
  121. package/dist/cpf.js +6 -4
  122. package/dist/detect.d.ts +23 -0
  123. package/dist/detect.js +26 -0
  124. package/dist/detect.js.map +1 -0
  125. package/dist/generate.d.ts +10 -0
  126. package/dist/generate.js +29 -0
  127. package/dist/generate.js.map +1 -0
  128. package/dist/index-CZLo9YOT.d.ts +21 -0
  129. package/dist/index.d.ts +14 -4
  130. package/dist/index.js +60 -22
  131. package/dist/index.js.map +1 -1
  132. package/dist/inscricao-estadual-produtor-rural-CfWUaggb.d.ts +46 -0
  133. package/dist/inscricao-estadual-produtor-rural.d.ts +2 -0
  134. package/dist/inscricao-estadual-produtor-rural.js +7 -0
  135. package/dist/inscricao-estadual-produtor-rural.js.map +1 -0
  136. package/dist/inscricao-estadual.d.ts +4 -21
  137. package/dist/inscricao-estadual.js +5 -2
  138. package/dist/nfe-chave.d.ts +71 -0
  139. package/dist/nfe-chave.js +6 -0
  140. package/dist/nfe-chave.js.map +1 -0
  141. package/dist/pis-pasep.d.ts +2 -2
  142. package/dist/pis-pasep.js +5 -3
  143. package/dist/{pix-DP6jnwpN.d.ts → pix-ddldLlb7.d.ts} +1 -1
  144. package/dist/pix.d.ts +2 -2
  145. package/dist/pix.js +8 -5
  146. package/dist/placa.d.ts +2 -2
  147. package/dist/placa.js +6 -3
  148. package/dist/renavam.d.ts +37 -0
  149. package/dist/renavam.js +11 -0
  150. package/dist/renavam.js.map +1 -0
  151. package/dist/sanitize.d.ts +9 -0
  152. package/dist/sanitize.js +24 -0
  153. package/dist/sanitize.js.map +1 -0
  154. package/dist/telefone.d.ts +29 -0
  155. package/dist/telefone.js +6 -0
  156. package/dist/telefone.js.map +1 -0
  157. package/dist/titulo-eleitor.d.ts +56 -0
  158. package/dist/titulo-eleitor.js +10 -0
  159. package/dist/titulo-eleitor.js.map +1 -0
  160. package/dist/validation-result-BhQE-1_O.d.ts +196 -0
  161. package/package.json +46 -5
  162. package/dist/chunk-54DTXC6V.js.map +0 -1
  163. package/dist/chunk-7FOWIH6F.js.map +0 -1
  164. package/dist/chunk-AKJHIJ5E.js.map +0 -1
  165. package/dist/chunk-DKRM66US.js +0 -35
  166. package/dist/chunk-DKRM66US.js.map +0 -1
  167. package/dist/chunk-M66MGLHE.js.map +0 -1
  168. package/dist/chunk-OWJ5HN4T.js.map +0 -1
  169. package/dist/chunk-PBNVKDCF.js.map +0 -1
  170. package/dist/chunk-RMKTJQBB.js.map +0 -1
  171. package/dist/chunk-RZ2JG5PP.js.map +0 -1
  172. package/dist/chunk-SE33CFGM.js.map +0 -1
  173. package/dist/chunk-W6UXVWSR.js +0 -13
  174. package/dist/chunk-W6UXVWSR.js.map +0 -1
  175. package/dist/chunk-YY4M2YS6.js.map +0 -1
  176. package/dist/chunk-Z4F75QEC.js.map +0 -1
  177. package/dist/validation-result-BK4qJuei.d.ts +0 -101
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  100% open-source Brazilian document validators (MIT).
4
4
 
5
5
  **npm:** [`@br-validators/core`](https://www.npmjs.com/package/@br-validators/core)
6
- **Repo:** [github.com/AlexandreZanata/doc-raiz](https://github.com/AlexandreZanata/doc-raiz)
6
+ **Repo:** [github.com/AlexandreZanata/br-validators](https://github.com/AlexandreZanata/br-validators)
7
7
 
8
8
  > The unscoped name `br-validators` on npm is a different package. Use **`@br-validators/core`**.
9
9
 
@@ -26,6 +26,9 @@ Requires Node ≥ 18. ESM only (`"type": "module"`).
26
26
  | CNPJ | `validateCnpj`, `formatCnpj`, `stripCnpj` | `12ABC34501DE35` |
27
27
  | CPF | `validateCpf`, `formatCpf`, `stripCpf` | `12345678909` |
28
28
  | CEP | `validateCep`, `formatCep`, `stripCep` | `01310100` |
29
+ | Telefone | `validateTelefone`, `formatTelefone`, `stripTelefone` | `11999999999` |
30
+ | CNH | `validateCnh`, `formatCnh`, `stripCnh` | `62472927637` (11 digits, no CPF mask) |
31
+ | RENAVAM | `validateRenavam`, `formatRenavam`, `stripRenavam` | `63977791104` (11 digits, modulo 11 peso 9) |
29
32
  | Placa | `validatePlaca`, `formatPlaca`, `convertPlacaToMercosul` | `ABC1D23` |
30
33
  | PIS/PASEP | `validatePisPasep`, `formatPisPasep` | `10027230888` |
31
34
  | PIX key | `validatePixKey`, `formatPixKey` | `pix@bcb.gov.br` |
@@ -65,7 +68,7 @@ validateInscricaoEstadual('0730000100109', { uf: 'DF' });
65
68
 
66
69
  ## Official sources
67
70
 
68
- Every algorithm cites a primary government source. Full table: [OFFICIAL-SOURCES.md](https://github.com/AlexandreZanata/doc-raiz/blob/main/docs/OFFICIAL-SOURCES.md)
71
+ Every algorithm cites a primary government source. Full table: [OFFICIAL-SOURCES.md](https://github.com/AlexandreZanata/br-validators/blob/main/docs/OFFICIAL-SOURCES.md)
69
72
 
70
73
  Per-type URLs also available via constants (`CNPJ_OFFICIAL_SOURCE_URL`, `IE_OFFICIAL_SOURCE_URLS`, etc.).
71
74
 
@@ -73,7 +76,7 @@ Per-type URLs also available via constants (`CNPJ_OFFICIAL_SOURCE_URL`, `IE_OFFI
73
76
 
74
77
  ## API reference
75
78
 
76
- [docs/LIBRARY-API.md](https://github.com/AlexandreZanata/doc-raiz/blob/main/docs/LIBRARY-API.md)
79
+ [docs/LIBRARY-API.md](https://github.com/AlexandreZanata/br-validators/blob/main/docs/LIBRARY-API.md)
77
80
 
78
81
  ---
79
82
 
package/dist/boleto.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { b as BoletoValidationResult, V as ValidationErrorCode, B as BoletoInputKind, F as FormatResult } from './validation-result-BK4qJuei.js';
2
- export { a as BoletoSituacao, f as CodigoBarras, D as DocumentFormat, L as LinhaDigitavel } from './validation-result-BK4qJuei.js';
1
+ import { b as BoletoValidationResult, V as ValidationErrorCode, B as BoletoInputKind, F as FormatResult } from './validation-result-BhQE-1_O.js';
2
+ export { a as BoletoSituacao, i as CodigoBarras, D as DocumentFormat, L as LinhaDigitavel } from './validation-result-BhQE-1_O.js';
3
3
 
4
4
  /**
5
5
  * FEBRABAN bank boleto (cobrança) — linha digitável + código de barras.
package/dist/boleto.js CHANGED
@@ -1,4 +1,5 @@
1
- export { BOLETO_CODE_ISPB_HOLDER, BOLETO_CODIGO_BARRAS_LENGTH, BOLETO_CURRENCY_ISPB, BOLETO_CURRENCY_REAL, BOLETO_GOLDEN_CODIGO_BARRAS, BOLETO_GOLDEN_CODIGO_BARRAS_BB, BOLETO_GOLDEN_CODIGO_BARRAS_SITUACAO2, BOLETO_GOLDEN_LINHA_BB_STRIPPED, BOLETO_GOLDEN_LINHA_MASKED, BOLETO_GOLDEN_LINHA_SITUACAO2_STRIPPED, BOLETO_GOLDEN_LINHA_STRIPPED, BOLETO_LAYOUTS_PORTAL_URL, BOLETO_LINHA_LENGTH, BOLETO_OFFICIAL_SOURCE_URL, applyLinhaDigitavelMask, computeModulo10FieldDv, computeModulo11BarcodeDv, convertCodigoBarrasToLinhaDigitavel, convertCodigoBarrasToLinhaDigits, convertLinhaToCodigoBarras, convertLinhaToCodigoBarrasDigits, detectBoletoInputKind, detectBoletoSituacao, formatBoleto, formatLinhaDigitavel, isValidBoleto, stripCodigoBarras, stripLinhaDigitavel, validateBoleto, validateCodigoBarras, validateFatorVencimento, validateLinhaDigitavel, validateValorDocumento } from './chunk-AKJHIJ5E.js';
2
- import './chunk-DKRM66US.js';
1
+ export { formatBoleto } from './chunk-FXLVNCG3.js';
2
+ export { BOLETO_CODE_ISPB_HOLDER, BOLETO_CODIGO_BARRAS_LENGTH, BOLETO_CURRENCY_ISPB, BOLETO_CURRENCY_REAL, BOLETO_GOLDEN_CODIGO_BARRAS, BOLETO_GOLDEN_CODIGO_BARRAS_BB, BOLETO_GOLDEN_CODIGO_BARRAS_SITUACAO2, BOLETO_GOLDEN_LINHA_BB_STRIPPED, BOLETO_GOLDEN_LINHA_MASKED, BOLETO_GOLDEN_LINHA_SITUACAO2_STRIPPED, BOLETO_GOLDEN_LINHA_STRIPPED, BOLETO_LAYOUTS_PORTAL_URL, BOLETO_LINHA_LENGTH, BOLETO_OFFICIAL_SOURCE_URL, applyLinhaDigitavelMask, computeModulo10FieldDv, computeModulo11BarcodeDv, convertCodigoBarrasToLinhaDigitavel, convertCodigoBarrasToLinhaDigits, convertLinhaToCodigoBarras, convertLinhaToCodigoBarrasDigits, detectBoletoInputKind, detectBoletoSituacao, formatLinhaDigitavel, isValidBoleto, stripCodigoBarras, stripLinhaDigitavel, validateBoleto, validateCodigoBarras, validateFatorVencimento, validateLinhaDigitavel, validateValorDocumento } from './chunk-4W4OKLSZ.js';
3
+ import './chunk-MSLJF2FM.js';
3
4
  //# sourceMappingURL=boleto.js.map
4
5
  //# sourceMappingURL=boleto.js.map
@@ -0,0 +1,79 @@
1
+ import { p as PixKey, q as PixKeyType, V as ValidationErrorCode, d as BrCodeValidationResult } from './validation-result-BhQE-1_O.js';
2
+ export { c as BrCodePayload } from './validation-result-BhQE-1_O.js';
3
+
4
+ /** Bacen Manual BR Code — EMV-QRCPS-MPM TLV + CRC16-CCITT */
5
+ declare const BRCODE_OFFICIAL_SOURCE_URL = "https://www.bcb.gov.br/content/estabilidadefinanceira/spb_docs/ManualBRCode.pdf";
6
+ declare const BRCODE_PIX_INITIATION_MANUAL_URL = "https://www.bcb.gov.br/content/estabilidadefinanceira/pix/Regulamento_Pix/II_ManualdePadroesparaIniciacaodoPix.pdf";
7
+ /** Manual de Padrões PIX — static QR, EVP key (CRC 1D3D). */
8
+ declare const BRCODE_GOLDEN_STATIC_EVP = "00020126580014br.gov.bcb.pix0136123e4567-e12b-12d1-a456-4266554400005204000053039865802BR5913Fulano de Tal6008BRASILIA62070503***63041D3D";
9
+ /** Manual de Padrões PIX — dynamic QR with amount (CRC 7309). */
10
+ declare const BRCODE_GOLDEN_DYNAMIC_URL = "00020101021226730014br.gov.bcb.pix2551pix.example.com/v2/8b3da2f39a4140d1a91abd93113bd4415204000053039865406123.455802BR5913Fulano de Tal6008BRASILIA62190515RP12345678-201963047309";
11
+ /** Manual BR Code — composite payload with PIX + other arranjos (CRC AD38). */
12
+ declare const BRCODE_GOLDEN_COMPOSITE = "00020104141234567890123426580014BR.GOV.BCB.PIX0136123e4567-e12b-12d1-a456-42665544000027300012BR.COM.OUTRO011001234567895204000053039865406123.455802BR5917NOME DO RECEBEDOR6008BRASILIA61087007490062190515RP12345678-201980390012BR.COM.OUTRO01190123.ABCD.3456.WXYZ6304AD38";
13
+ /** Golden CPF PIX key 12345678909 — CRC computed per manual algorithm. */
14
+ declare const BRCODE_GOLDEN_STATIC_CPF = "00020126330014br.gov.bcb.pix0111123456789095204000053039865802BR5917NOME DO RECEBEDOR6009SAO PAULO62070503***6304258E";
15
+ /** Golden email pix@bcb.gov.br — CRC computed per manual algorithm. */
16
+ declare const BRCODE_GOLDEN_STATIC_EMAIL = "00020126360014br.gov.bcb.pix0114pix@bcb.gov.br5204000053039865802BR5913Fulano de Tal6008BRASILIA62070503***6304A7E9";
17
+
18
+ /** CRC16-CCITT-FALSE — polynomial 0x1021, initial 0xFFFF (Bacen Manual BR Code). */
19
+ declare function computeCrc16Ccitt(payload: string): string;
20
+ declare function verifyBrCodeCrc(payload: string): {
21
+ ok: true;
22
+ } | {
23
+ ok: false;
24
+ message: string;
25
+ };
26
+
27
+ type BrCodeParsedFields = {
28
+ merchantName: string;
29
+ merchantCity: string;
30
+ amount?: string;
31
+ txid?: string;
32
+ pixKey?: PixKey;
33
+ pixKeyType?: PixKeyType;
34
+ pixInitiationUrl?: string;
35
+ };
36
+ type BrCodeParseFailure = {
37
+ ok: false;
38
+ code: ValidationErrorCode;
39
+ message: string;
40
+ };
41
+ type BrCodeParseSuccess = {
42
+ ok: true;
43
+ payload: string;
44
+ fields: BrCodeParsedFields;
45
+ };
46
+ type BrCodeParseResult = BrCodeParseSuccess | BrCodeParseFailure;
47
+ declare function normalizeBrCodePayload(input: string): string;
48
+ declare function parseBrCodePayload(input: string): BrCodeParseResult;
49
+
50
+ type TlvField = {
51
+ id: string;
52
+ value: string;
53
+ };
54
+ type TlvParseFailure = {
55
+ ok: false;
56
+ message: string;
57
+ };
58
+ type TlvParseSuccess = {
59
+ ok: true;
60
+ fields: TlvField[];
61
+ };
62
+ type TlvParseResult = TlvParseSuccess | TlvParseFailure;
63
+ declare function parseTlvSequence(data: string): TlvParseResult;
64
+ declare function findTlvField(fields: TlvField[], id: string): string | undefined;
65
+ declare function findPixMerchantAccount(fields: TlvField[]): {
66
+ value: string;
67
+ nestedFields: TlvField[];
68
+ } | undefined;
69
+
70
+ /**
71
+ * BR Code (PIX QR) payload parsing — EMV TLV + CRC16-CCITT.
72
+ * @see https://www.bcb.gov.br/content/estabilidadefinanceira/spb_docs/ManualBRCode.pdf
73
+ */
74
+
75
+ declare function isValidBrCode(input: string): boolean;
76
+ declare function parseBrCode(input: string): BrCodeValidationResult;
77
+ declare function validateBrCode(input: string): BrCodeValidationResult;
78
+
79
+ export { BRCODE_GOLDEN_COMPOSITE, BRCODE_GOLDEN_DYNAMIC_URL, BRCODE_GOLDEN_STATIC_CPF, BRCODE_GOLDEN_STATIC_EMAIL, BRCODE_GOLDEN_STATIC_EVP, BRCODE_OFFICIAL_SOURCE_URL, BRCODE_PIX_INITIATION_MANUAL_URL, type BrCodeParseResult, type BrCodeParsedFields, BrCodeValidationResult, PixKeyType, type TlvField, type TlvParseResult, computeCrc16Ccitt, findPixMerchantAccount, findTlvField, isValidBrCode, normalizeBrCodePayload, parseBrCode, parseBrCodePayload, parseTlvSequence, validateBrCode, verifyBrCodeCrc };
package/dist/brcode.js ADDED
@@ -0,0 +1,13 @@
1
+ import './chunk-RYGAK7PB.js';
2
+ export { BRCODE_GOLDEN_COMPOSITE, BRCODE_GOLDEN_DYNAMIC_URL, BRCODE_GOLDEN_STATIC_CPF, BRCODE_GOLDEN_STATIC_EMAIL, BRCODE_GOLDEN_STATIC_EVP, BRCODE_OFFICIAL_SOURCE_URL, BRCODE_PIX_INITIATION_MANUAL_URL, computeCrc16Ccitt, findPixMerchantAccount, findTlvField, isValidBrCode, normalizeBrCodePayload, parseBrCode, parseBrCodePayload, parseTlvSequence, validateBrCode, verifyBrCodeCrc } from './chunk-WCQUQ2WX.js';
3
+ import './chunk-MK7OJUF5.js';
4
+ import './chunk-XUO7FV6Z.js';
5
+ import './chunk-YXELVV37.js';
6
+ import './chunk-EB3G4IG6.js';
7
+ import './chunk-KQDLIGSG.js';
8
+ import './chunk-F6PTZY4O.js';
9
+ import './chunk-UCJPSJN5.js';
10
+ import './chunk-OTZHMJYE.js';
11
+ import './chunk-MSLJF2FM.js';
12
+ //# sourceMappingURL=brcode.js.map
13
+ //# sourceMappingURL=brcode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"brcode.js"}
@@ -1,5 +1,5 @@
1
- import { c as CartaoCreditoValidationResult, F as FormatResult } from './validation-result-BK4qJuei.js';
2
- export { C as CartaoCredito, D as DocumentFormat, V as ValidationErrorCode } from './validation-result-BK4qJuei.js';
1
+ import { e as CartaoCreditoValidationResult, F as FormatResult } from './validation-result-BhQE-1_O.js';
2
+ export { C as CartaoCredito, D as DocumentFormat, V as ValidationErrorCode } from './validation-result-BhQE-1_O.js';
3
3
 
4
4
  /**
5
5
  * Credit card PAN constants — ISO/IEC 7812-1 Annex B (Luhn).
@@ -1,4 +1,6 @@
1
- export { CARTAO_GOLDEN_AMEX, CARTAO_GOLDEN_LUHN_WALKTHROUGH, CARTAO_GOLDEN_MASTERCARD, CARTAO_GOLDEN_MIN_LENGTH, CARTAO_GOLDEN_VISA, CARTAO_GOLDEN_VISA_MASKED, CARTAO_IEC_SOURCE_URL, CARTAO_OFFICIAL_SOURCE_URL, CARTAO_PAN_MAX_LENGTH, CARTAO_PAN_MIN_LENGTH, computeLuhnSum, detectCardBrand, formatCartaoCredito, isValidCartaoCredito, isValidLuhn, passesLuhn, stripCartaoCredito, validateCartaoCredito } from './chunk-54DTXC6V.js';
2
- import './chunk-DKRM66US.js';
1
+ import './chunk-CQPM43VV.js';
2
+ export { formatCartaoCredito } from './chunk-XKY2CV3G.js';
3
+ export { CARTAO_GOLDEN_AMEX, CARTAO_GOLDEN_LUHN_WALKTHROUGH, CARTAO_GOLDEN_MASTERCARD, CARTAO_GOLDEN_MIN_LENGTH, CARTAO_GOLDEN_VISA, CARTAO_GOLDEN_VISA_MASKED, CARTAO_IEC_SOURCE_URL, CARTAO_OFFICIAL_SOURCE_URL, CARTAO_PAN_MAX_LENGTH, CARTAO_PAN_MIN_LENGTH, computeLuhnSum, detectCardBrand, isValidCartaoCredito, isValidLuhn, passesLuhn, stripCartaoCredito, validateCartaoCredito } from './chunk-EPKHEW5V.js';
4
+ import './chunk-MSLJF2FM.js';
3
5
  //# sourceMappingURL=cartao-credito.js.map
4
6
  //# sourceMappingURL=cartao-credito.js.map
package/dist/cep.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { m as ValidationResult, F as FormatResult } from './validation-result-BK4qJuei.js';
2
- export { d as Cep, D as DocumentFormat, V as ValidationErrorCode } from './validation-result-BK4qJuei.js';
1
+ import { x as ValidationResult, F as FormatResult } from './validation-result-BhQE-1_O.js';
2
+ export { f as Cep, D as DocumentFormat, V as ValidationErrorCode } from './validation-result-BhQE-1_O.js';
3
3
 
4
4
  declare const CEP_GOLDEN_PRIMARY = "01310100";
5
5
  declare const CEP_GOLDEN_SECONDARY = "20040020";
package/dist/cep.js CHANGED
@@ -1,7 +1,10 @@
1
- export { CEP_GOLDEN_PRIMARY, CEP_GOLDEN_PRIMARY_MASKED, CEP_GOLDEN_SECONDARY, CEP_OFFICIAL_SOURCE_URL, formatCep, isValidCep, validateCep } from './chunk-RMKTJQBB.js';
2
- export { stripCep } from './chunk-W6UXVWSR.js';
1
+ import './chunk-2CNYSY3Z.js';
2
+ export { formatCep } from './chunk-ZAUZRIOU.js';
3
+ export { CEP_GOLDEN_PRIMARY, CEP_GOLDEN_PRIMARY_MASKED, CEP_GOLDEN_SECONDARY, CEP_OFFICIAL_SOURCE_URL, isValidCep, validateCep } from './chunk-2JJS46FM.js';
4
+ export { stripCep } from './chunk-YYHS5WQN.js';
5
+ import './chunk-4SNBZFS5.js';
3
6
  import './chunk-EB3G4IG6.js';
4
7
  import './chunk-UCJPSJN5.js';
5
- import './chunk-DKRM66US.js';
8
+ import './chunk-MSLJF2FM.js';
6
9
  //# sourceMappingURL=cep.js.map
7
10
  //# sourceMappingURL=cep.js.map
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=chunk-2CNYSY3Z.js.map
3
+ //# sourceMappingURL=chunk-2CNYSY3Z.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-2CNYSY3Z.js"}
@@ -1,5 +1,5 @@
1
- import { stripCep } from './chunk-W6UXVWSR.js';
2
- import { brandCep } from './chunk-DKRM66US.js';
1
+ import { stripCep } from './chunk-YYHS5WQN.js';
2
+ import { brandCep } from './chunk-MSLJF2FM.js';
3
3
 
4
4
  // src/core/cep/constants.ts
5
5
  var CEP_LENGTH = 8;
@@ -38,24 +38,6 @@ function validateCep(input) {
38
38
  return { ok: true, value: brandCep(stripped), format: "numeric" };
39
39
  }
40
40
 
41
- // src/core/cep/mask.ts
42
- function applyCepMask(canonical) {
43
- const match = CEP_MASK_PATTERN.exec(canonical);
44
- if (!match) {
45
- throw new Error("CEP must have exactly 8 digits to apply mask");
46
- }
47
- return `${match[1]}-${match[2]}`;
48
- }
49
-
50
- // src/format/cep.ts
51
- function formatCep(input) {
52
- const result = validateCep(input);
53
- if (!result.ok) {
54
- return { ok: false, code: result.code, message: result.message };
55
- }
56
- return { ok: true, formatted: applyCepMask(result.value) };
57
- }
58
-
59
- export { CEP_GOLDEN_PRIMARY, CEP_GOLDEN_PRIMARY_MASKED, CEP_GOLDEN_SECONDARY, CEP_OFFICIAL_SOURCE_URL, formatCep, isValidCep, validateCep };
60
- //# sourceMappingURL=chunk-RMKTJQBB.js.map
61
- //# sourceMappingURL=chunk-RMKTJQBB.js.map
41
+ export { CEP_GOLDEN_PRIMARY, CEP_GOLDEN_PRIMARY_MASKED, CEP_GOLDEN_SECONDARY, CEP_MASK_PATTERN, CEP_OFFICIAL_SOURCE_URL, isValidCep, validateCep };
42
+ //# sourceMappingURL=chunk-2JJS46FM.js.map
43
+ //# sourceMappingURL=chunk-2JJS46FM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/cep/constants.ts","../src/core/cep/index.ts"],"names":[],"mappings":";;;;AAKO,IAAM,UAAA,GAAa,CAAA;AACnB,IAAM,gBAAA,GAAmB;AAGzB,IAAM,kBAAA,GAAqB;AAC3B,IAAM,oBAAA,GAAuB;AAC7B,IAAM,yBAAA,GAA4B;AAClC,IAAM,uBAAA,GACX;;;ACMF,SAAS,OAAA,CAAQ,MAA4B,OAAA,EAA+B;AAC1E,EAAA,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,IAAA,EAAM,OAAA,EAAQ;AACpC;AAEA,SAAS,iBAAA,CAAkB,OAAe,QAAA,EAAuC;AAC/E,EAAA,IAAI,QAAA,CAAS,WAAW,CAAA,EAAG;AACzB,IAAA,OAAO,OAAA,CAAQ,eAAe,oBAAoB,CAAA;AAAA,EACpD;AAEA,EAAA,MAAM,WAAA,GAAc,KAAA,CAAM,OAAA,CAAQ,QAAA,EAAU,EAAE,CAAA;AAC9C,EAAA,IAAI,QAAA,CAAS,IAAA,CAAK,WAAW,CAAA,EAAG;AAC9B,IAAA,OAAO,OAAA,CAAQ,qBAAqB,iCAAiC,CAAA;AAAA,EACvE;AAEA,EAAA,IAAI,QAAA,CAAS,WAAW,UAAA,EAAY;AAClC,IAAA,OAAO,OAAA,CAAQ,gBAAA,EAAkB,CAAA,cAAA,EAAiB,UAAU,CAAA,2BAAA,CAA6B,CAAA;AAAA,EAC3F;AAEA,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,WAAW,KAAA,EAAwB;AACjD,EAAA,OAAO,WAAA,CAAY,KAAK,CAAA,CAAE,EAAA;AAC5B;AAEO,SAAS,YAAY,KAAA,EAAiC;AAC3D,EAAA,MAAM,QAAA,GAAW,SAAS,KAAK,CAAA;AAC/B,EAAA,MAAM,UAAA,GAAa,iBAAA,CAAkB,KAAA,EAAO,QAAQ,CAAA;AACpD,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,OAAO,UAAA;AAAA,EACT;AAEA,EAAA,OAAO,EAAE,IAAI,IAAA,EAAM,KAAA,EAAO,SAAS,QAAQ,CAAA,EAAG,QAAQ,SAAA,EAAU;AAClE","file":"chunk-2JJS46FM.js","sourcesContent":["/**\n * CEP constants — 8 digits, no check digit (Correios).\n * @see https://www.correios.com.br/atendimento/developers/manuais/manual-api-busca-cep\n * @see docs/VALIDATION-RULES.md BR-CEP-001 — golden vector 01310100\n */\nexport const CEP_LENGTH = 8;\nexport const CEP_MASK_PATTERN = /^(\\d{5})(\\d{3})$/;\nexport const CEP_NUMERIC_PATTERN = /^\\d{8}$/;\n\nexport const CEP_GOLDEN_PRIMARY = '01310100';\nexport const CEP_GOLDEN_SECONDARY = '20040020';\nexport const CEP_GOLDEN_PRIMARY_MASKED = '01310-100';\nexport const CEP_OFFICIAL_SOURCE_URL =\n 'https://www.correios.com.br/atendimento/developers/manuais/manual-api-busca-cep';\n","/**\n * CEP validation — structural only, no check digit (Correios).\n * @see https://www.correios.com.br/atendimento/developers/manuais/manual-api-busca-cep\n * @see docs/VALIDATION-RULES.md BR-CEP-001 — golden vector 01310100\n */\nimport { stripCep } from '../../strip/index.js';\nimport type { ValidationResult } from '../../types/validation-result.js';\nimport { brandCep } from '../../types/validation-result.js';\nimport { CEP_LENGTH } from './constants.js';\n\nexport {\n CEP_GOLDEN_PRIMARY,\n CEP_GOLDEN_PRIMARY_MASKED,\n CEP_GOLDEN_SECONDARY,\n CEP_OFFICIAL_SOURCE_URL,\n} from './constants.js';\n\ntype FailedResult = Extract<ValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message };\n}\n\nfunction validateStructure(input: string, stripped: string): FailedResult | null {\n if (stripped.length === 0) {\n return failure('EMPTY_INPUT', 'CEP input is empty');\n }\n\n const withoutMask = input.replace(/[-\\s]/g, '');\n if (/[^0-9]/.test(withoutMask)) {\n return failure('INVALID_CHARACTER', 'CEP contains invalid characters');\n }\n\n if (stripped.length !== CEP_LENGTH) {\n return failure('INVALID_LENGTH', `CEP must have ${CEP_LENGTH} digits after normalization`);\n }\n\n return null;\n}\n\nexport function isValidCep(input: string): boolean {\n return validateCep(input).ok;\n}\n\nexport function validateCep(input: string): ValidationResult {\n const stripped = stripCep(input);\n const structural = validateStructure(input, stripped);\n if (structural) {\n return structural;\n }\n\n return { ok: true, value: brandCep(stripped), format: 'numeric' };\n}\n"]}