@linkiez/boleto-sdk 1.0.0 → 1.1.2

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 (105) hide show
  1. package/LICENSE +190 -190
  2. package/README.md +185 -168
  3. package/dist/adapters/IBankAdapter.d.ts +9 -0
  4. package/dist/adapters/IBankAdapter.d.ts.map +1 -0
  5. package/dist/adapters/IBankAdapter.js +3 -0
  6. package/dist/adapters/IBankAdapter.js.map +1 -0
  7. package/dist/adapters/bradesco/BradescoAdapter.d.ts +27 -0
  8. package/dist/adapters/bradesco/BradescoAdapter.d.ts.map +1 -0
  9. package/dist/adapters/bradesco/BradescoAdapter.js +130 -0
  10. package/dist/adapters/bradesco/BradescoAdapter.js.map +1 -0
  11. package/dist/adapters/bradesco/BradescoFieldParser.d.ts +4 -0
  12. package/dist/adapters/bradesco/BradescoFieldParser.d.ts.map +1 -0
  13. package/dist/adapters/bradesco/BradescoFieldParser.js +46 -0
  14. package/dist/adapters/bradesco/BradescoFieldParser.js.map +1 -0
  15. package/dist/adapters/bradesco/BradescoOccurrenceMapper.d.ts +5 -0
  16. package/dist/adapters/bradesco/BradescoOccurrenceMapper.d.ts.map +1 -0
  17. package/dist/adapters/bradesco/BradescoOccurrenceMapper.js +47 -0
  18. package/dist/adapters/bradesco/BradescoOccurrenceMapper.js.map +1 -0
  19. package/dist/adapters/bradesco/BradescoOurNumberCalculator.d.ts +5 -0
  20. package/dist/adapters/bradesco/BradescoOurNumberCalculator.d.ts.map +1 -0
  21. package/dist/adapters/bradesco/BradescoOurNumberCalculator.js +40 -0
  22. package/dist/adapters/bradesco/BradescoOurNumberCalculator.js.map +1 -0
  23. package/dist/adapters/bradesco/BradescoValidator.d.ts +7 -0
  24. package/dist/adapters/bradesco/BradescoValidator.d.ts.map +1 -0
  25. package/dist/adapters/bradesco/BradescoValidator.js +103 -0
  26. package/dist/adapters/bradesco/BradescoValidator.js.map +1 -0
  27. package/dist/adapters/bradesco/BradescoWalletValidator.d.ts +8 -0
  28. package/dist/adapters/bradesco/BradescoWalletValidator.d.ts.map +1 -0
  29. package/dist/adapters/bradesco/BradescoWalletValidator.js +55 -0
  30. package/dist/adapters/bradesco/BradescoWalletValidator.js.map +1 -0
  31. package/dist/adapters/bradesco/index.d.ts +7 -0
  32. package/dist/adapters/bradesco/index.d.ts.map +1 -0
  33. package/dist/adapters/bradesco/index.js +23 -0
  34. package/dist/adapters/bradesco/index.js.map +1 -0
  35. package/dist/adapters/index.d.ts +4 -0
  36. package/dist/adapters/index.d.ts.map +1 -0
  37. package/dist/adapters/index.js +20 -0
  38. package/dist/adapters/index.js.map +1 -0
  39. package/dist/adapters/itau/ItauAdapter.d.ts +31 -0
  40. package/dist/adapters/itau/ItauAdapter.d.ts.map +1 -0
  41. package/dist/adapters/itau/ItauAdapter.js +158 -0
  42. package/dist/adapters/itau/ItauAdapter.js.map +1 -0
  43. package/dist/adapters/itau/ItauFieldParser.d.ts +4 -0
  44. package/dist/adapters/itau/ItauFieldParser.d.ts.map +1 -0
  45. package/dist/adapters/itau/ItauFieldParser.js +52 -0
  46. package/dist/adapters/itau/ItauFieldParser.js.map +1 -0
  47. package/dist/adapters/itau/ItauInstructionMapper.d.ts +5 -0
  48. package/dist/adapters/itau/ItauInstructionMapper.d.ts.map +1 -0
  49. package/dist/adapters/itau/ItauInstructionMapper.js +54 -0
  50. package/dist/adapters/itau/ItauInstructionMapper.js.map +1 -0
  51. package/dist/adapters/itau/ItauOccurrenceMapper.d.ts +5 -0
  52. package/dist/adapters/itau/ItauOccurrenceMapper.d.ts.map +1 -0
  53. package/dist/adapters/itau/ItauOccurrenceMapper.js +52 -0
  54. package/dist/adapters/itau/ItauOccurrenceMapper.js.map +1 -0
  55. package/dist/adapters/itau/ItauOurNumberCalculator.d.ts +5 -0
  56. package/dist/adapters/itau/ItauOurNumberCalculator.d.ts.map +1 -0
  57. package/dist/adapters/itau/ItauOurNumberCalculator.js +28 -0
  58. package/dist/adapters/itau/ItauOurNumberCalculator.js.map +1 -0
  59. package/dist/adapters/itau/ItauReturnMapper.d.ts +6 -0
  60. package/dist/adapters/itau/ItauReturnMapper.d.ts.map +1 -0
  61. package/dist/adapters/itau/ItauReturnMapper.js +71 -0
  62. package/dist/adapters/itau/ItauReturnMapper.js.map +1 -0
  63. package/dist/adapters/itau/ItauValidator.d.ts +7 -0
  64. package/dist/adapters/itau/ItauValidator.d.ts.map +1 -0
  65. package/dist/adapters/itau/ItauValidator.js +94 -0
  66. package/dist/adapters/itau/ItauValidator.js.map +1 -0
  67. package/dist/adapters/itau/ItauWalletValidator.d.ts +7 -0
  68. package/dist/adapters/itau/ItauWalletValidator.d.ts.map +1 -0
  69. package/dist/adapters/itau/ItauWalletValidator.js +57 -0
  70. package/dist/adapters/itau/ItauWalletValidator.js.map +1 -0
  71. package/dist/adapters/itau/index.d.ts +9 -0
  72. package/dist/adapters/itau/index.d.ts.map +1 -0
  73. package/dist/adapters/itau/index.js +25 -0
  74. package/dist/adapters/itau/index.js.map +1 -0
  75. package/dist/constants/bancos/ItauRejectionCodes.d.ts +2 -0
  76. package/dist/constants/bancos/ItauRejectionCodes.d.ts.map +1 -0
  77. package/dist/constants/bancos/ItauRejectionCodes.js +13 -0
  78. package/dist/constants/bancos/ItauRejectionCodes.js.map +1 -0
  79. package/dist/constants/bancos/index.d.ts +1 -0
  80. package/dist/constants/bancos/index.d.ts.map +1 -1
  81. package/dist/constants/bancos/index.js +1 -0
  82. package/dist/constants/bancos/index.js.map +1 -1
  83. package/dist/index.d.ts +1 -0
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +1 -0
  86. package/dist/index.js.map +1 -1
  87. package/dist/templates/HtmlTemplateBuilder.js +182 -182
  88. package/dist/types/adapters/bradesco/index.d.ts +73 -0
  89. package/dist/types/adapters/bradesco/index.d.ts.map +1 -0
  90. package/dist/types/adapters/bradesco/index.js +3 -0
  91. package/dist/types/adapters/bradesco/index.js.map +1 -0
  92. package/dist/types/adapters/index.d.ts +3 -0
  93. package/dist/types/adapters/index.d.ts.map +1 -0
  94. package/dist/types/adapters/index.js +19 -0
  95. package/dist/types/adapters/index.js.map +1 -0
  96. package/dist/types/adapters/itau/index.d.ts +102 -0
  97. package/dist/types/adapters/itau/index.d.ts.map +1 -0
  98. package/dist/types/adapters/itau/index.js +3 -0
  99. package/dist/types/adapters/itau/index.js.map +1 -0
  100. package/dist/types/index.d.ts +1 -0
  101. package/dist/types/index.d.ts.map +1 -1
  102. package/dist/types/index.js +1 -0
  103. package/dist/types/index.js.map +1 -1
  104. package/dist/utils/email/EmailTemplateGenerator.js +27 -27
  105. package/package.json +105 -105
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./BankRegistry"), exports);
18
+ __exportStar(require("./ItauRejectionCodes"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/bancos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/bancos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,uDAAqC"}
package/dist/index.d.ts CHANGED
@@ -7,4 +7,5 @@ export * from './utils';
7
7
  export * from './errors';
8
8
  export * from './constants';
9
9
  export * from './templates';
10
+ export * from './adapters';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,cAAc,WAAW,CAAC;AAG1B,cAAc,cAAc,CAAC;AAG7B,cAAc,cAAc,CAAC;AAG7B,mBAAmB,SAAS,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,aAAa,CAAC;AAG5B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,cAAc,WAAW,CAAC;AAG1B,cAAc,cAAc,CAAC;AAG7B,cAAc,cAAc,CAAC;AAG7B,mBAAmB,SAAS,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,aAAa,CAAC;AAG5B,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -22,4 +22,5 @@ __exportStar(require("./utils"), exports);
22
22
  __exportStar(require("./errors"), exports);
23
23
  __exportStar(require("./constants"), exports);
24
24
  __exportStar(require("./templates"), exports);
25
+ __exportStar(require("./adapters"), exports);
25
26
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAOA,4CAA0B;AAG1B,+CAA6B;AAG7B,+CAA6B;AAM7B,0CAAwB;AAGxB,0CAAwB;AAGxB,2CAAyB;AAGzB,8CAA4B;AAG5B,8CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAOA,4CAA0B;AAG1B,+CAA6B;AAG7B,+CAA6B;AAM7B,0CAAwB;AAGxB,0CAAwB;AAGxB,2CAAyB;AAGzB,8CAA4B;AAG5B,8CAA4B;AAG5B,6CAA2B"}
@@ -47,76 +47,76 @@ function buildBoletoHtml(data, options = {}) {
47
47
  const payerDocument = escapeHtml(data.payer.document);
48
48
  const barcodeValue = escapeHtml(data.payment.barcode);
49
49
  const pixPanel = buildPixPanel(data.payment.pix);
50
- return `<!DOCTYPE html>
51
- <html lang="pt-BR">
52
- <head>
53
- <meta charset="utf-8" />
54
- <title>${title}</title>
55
- <style>
56
- body { margin: 0; background: #fff; }
57
- table.Boleto { margin: 0 auto; width: 19cm; border-collapse: collapse; }
58
- td.BoletoCodigoBanco {font-size: 6mm; font-family: arial, verdana; font-weight : bold;
59
- font-style: italic; text-align: center; vertical-align: bottom;
60
- border-bottom: 0.15mm solid #000000; border-right: 0.15mm solid #000000;
61
- padding-bottom : 1mm}
62
- td.BoletoLogo { border-bottom: 0.15mm solid #000000; border-right: 0.15mm solid #000000;
63
- text-align: center; height: 10mm}
64
- td.BoletoLinhaDigitavel {font-size: 4mm; font-family: arial, verdana; font-weight : bold;
65
- text-align: center; vertical-align: bottom;
66
- border-bottom: 0.15mm solid #000000; padding-bottom : 1mm; }
67
- td.BoletoTituloEsquerdo{font-size: 0.2cm; font-family: arial, verdana; padding-left : 0.15mm;
68
- border-right: 0.15mm solid #000000; text-align: left}
69
- td.BoletoTituloDireito{font-size: 2mm; font-family: arial, verdana; padding-left : 0.15mm;
70
- text-align: left}
71
- td.BoletoValorEsquerdo{font-size: 3mm; font-family: arial, verdana; text-align: center;
72
- border-right: 0.15mm solid #000000; font-weight: bold;
73
- border-bottom: 0.15mm solid #000000; padding-top: 0.5mm}
74
- td.BoletoValorDireito{font-size: 3mm; font-family: arial, verdana; text-align:right;
75
- padding-right: 3mm; padding-top: 0.8mm; border-bottom: 0.15mm solid #000000;
76
- font-weight: bold;}
77
- td.BoletoTituloSacado{font-size: 2mm; font-family: arial, verdana; padding-left : 0.15mm;
78
- vertical-align: top; padding-top : 0.15mm; text-align: left}
79
- td.BoletoValorSacado{font-size: 3mm; font-family: arial, verdana; font-weight: bold;
80
- text-align : left}
81
- td.BoletoTituloSacador{font-size: 2mm; font-family: arial, verdana; padding-left : 0.15mm;
82
- vertical-align: bottom; padding-bottom : 0.8mm;
83
- border-bottom: 0.15mm solid #000000}
84
- td.BoletoValorSacador{font-size: 3mm; font-family: arial, verdana; vertical-align: bottom;
85
- padding-bottom : 0.15mm; border-bottom: 0.15mm solid #000000;
86
- font-weight: bold; text-align: left}
87
- td.BoletoPontilhado{border-top: 0.3mm dashed #000000; font-size: 1mm}
88
- ul.BoletoInstrucoes{font-size : 3mm; font-family : verdana, arial; margin: 0 0 0 0.3cm; padding-left: 0.35cm}
89
- .BoletoCodBarrasTexto{font-family: 'Courier New', monospace; font-size: 2.4mm; letter-spacing: 0.2mm; padding: 0.2cm 0}
90
- .BoletoPix { margin-top: 0.15cm; border: 0.15mm solid #000; padding: 0.2cm; font-size: 2.2mm; font-family: arial, verdana; }
91
- .BoletoPixPayload { font-family: 'Courier New', monospace; font-size: 2.1mm; word-break: break-all; }
92
- @media (max-width: 820px) {
93
- table.Boleto { width: 100%; }
94
- ul.BoletoInstrucoes { font-size: 2.8mm; }
95
- }
96
- @media print {
97
- body { margin: 0; }
98
- * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
99
- }
100
- </style>
101
- </head>
102
- <body>
103
- <p align="center">
104
- <table cellspacing="0" cellpadding="0" border="0" class="Boleto">
105
- <tr>
106
- <td style="width: 0.9cm"></td>
107
- <td style="width: 1cm"></td>
108
- <td style="width: 1.9cm"></td>
109
- <td style="width: 0.5cm"></td>
110
- <td style="width: 1.3cm"></td>
111
- <td style="width: 0.8cm"></td>
112
- <td style="width: 1cm"></td>
113
- <td style="width: 1.9cm"></td>
114
- <td style="width: 1.9cm"></td>
115
- <td style="width: 3.8cm"></td>
116
- <td style="width: 3.8cm"></td>
117
- </tr>
118
- ${instructionList}
119
- <tr><td colspan="11" class="BoletoPontilhado">&nbsp;</td></tr>
50
+ return `<!DOCTYPE html>
51
+ <html lang="pt-BR">
52
+ <head>
53
+ <meta charset="utf-8" />
54
+ <title>${title}</title>
55
+ <style>
56
+ body { margin: 0; background: #fff; }
57
+ table.Boleto { margin: 0 auto; width: 19cm; border-collapse: collapse; }
58
+ td.BoletoCodigoBanco {font-size: 6mm; font-family: arial, verdana; font-weight : bold;
59
+ font-style: italic; text-align: center; vertical-align: bottom;
60
+ border-bottom: 0.15mm solid #000000; border-right: 0.15mm solid #000000;
61
+ padding-bottom : 1mm}
62
+ td.BoletoLogo { border-bottom: 0.15mm solid #000000; border-right: 0.15mm solid #000000;
63
+ text-align: center; height: 10mm}
64
+ td.BoletoLinhaDigitavel {font-size: 4mm; font-family: arial, verdana; font-weight : bold;
65
+ text-align: center; vertical-align: bottom;
66
+ border-bottom: 0.15mm solid #000000; padding-bottom : 1mm; }
67
+ td.BoletoTituloEsquerdo{font-size: 0.2cm; font-family: arial, verdana; padding-left : 0.15mm;
68
+ border-right: 0.15mm solid #000000; text-align: left}
69
+ td.BoletoTituloDireito{font-size: 2mm; font-family: arial, verdana; padding-left : 0.15mm;
70
+ text-align: left}
71
+ td.BoletoValorEsquerdo{font-size: 3mm; font-family: arial, verdana; text-align: center;
72
+ border-right: 0.15mm solid #000000; font-weight: bold;
73
+ border-bottom: 0.15mm solid #000000; padding-top: 0.5mm}
74
+ td.BoletoValorDireito{font-size: 3mm; font-family: arial, verdana; text-align:right;
75
+ padding-right: 3mm; padding-top: 0.8mm; border-bottom: 0.15mm solid #000000;
76
+ font-weight: bold;}
77
+ td.BoletoTituloSacado{font-size: 2mm; font-family: arial, verdana; padding-left : 0.15mm;
78
+ vertical-align: top; padding-top : 0.15mm; text-align: left}
79
+ td.BoletoValorSacado{font-size: 3mm; font-family: arial, verdana; font-weight: bold;
80
+ text-align : left}
81
+ td.BoletoTituloSacador{font-size: 2mm; font-family: arial, verdana; padding-left : 0.15mm;
82
+ vertical-align: bottom; padding-bottom : 0.8mm;
83
+ border-bottom: 0.15mm solid #000000}
84
+ td.BoletoValorSacador{font-size: 3mm; font-family: arial, verdana; vertical-align: bottom;
85
+ padding-bottom : 0.15mm; border-bottom: 0.15mm solid #000000;
86
+ font-weight: bold; text-align: left}
87
+ td.BoletoPontilhado{border-top: 0.3mm dashed #000000; font-size: 1mm}
88
+ ul.BoletoInstrucoes{font-size : 3mm; font-family : verdana, arial; margin: 0 0 0 0.3cm; padding-left: 0.35cm}
89
+ .BoletoCodBarrasTexto{font-family: 'Courier New', monospace; font-size: 2.4mm; letter-spacing: 0.2mm; padding: 0.2cm 0}
90
+ .BoletoPix { margin-top: 0.15cm; border: 0.15mm solid #000; padding: 0.2cm; font-size: 2.2mm; font-family: arial, verdana; }
91
+ .BoletoPixPayload { font-family: 'Courier New', monospace; font-size: 2.1mm; word-break: break-all; }
92
+ @media (max-width: 820px) {
93
+ table.Boleto { width: 100%; }
94
+ ul.BoletoInstrucoes { font-size: 2.8mm; }
95
+ }
96
+ @media print {
97
+ body { margin: 0; }
98
+ * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
99
+ }
100
+ </style>
101
+ </head>
102
+ <body>
103
+ <p align="center">
104
+ <table cellspacing="0" cellpadding="0" border="0" class="Boleto">
105
+ <tr>
106
+ <td style="width: 0.9cm"></td>
107
+ <td style="width: 1cm"></td>
108
+ <td style="width: 1.9cm"></td>
109
+ <td style="width: 0.5cm"></td>
110
+ <td style="width: 1.3cm"></td>
111
+ <td style="width: 0.8cm"></td>
112
+ <td style="width: 1cm"></td>
113
+ <td style="width: 1.9cm"></td>
114
+ <td style="width: 1.9cm"></td>
115
+ <td style="width: 3.8cm"></td>
116
+ <td style="width: 3.8cm"></td>
117
+ </tr>
118
+ ${instructionList}
119
+ <tr><td colspan="11" class="BoletoPontilhado">&nbsp;</td></tr>
120
120
  ${buildSlipSection({
121
121
  logoHtml,
122
122
  bankCodeWithDigit,
@@ -142,8 +142,8 @@ function buildBoletoHtml(data, options = {}) {
142
142
  guarantorName: escapeHtml(guarantorName),
143
143
  rightFooter: `${escapeHtml(heading)} - Recibo do Sacado - Autenticação Mecânica`,
144
144
  bottomContent: '&nbsp;',
145
- })}
146
- <tr><td colspan="11" class="BoletoPontilhado">&nbsp;</td></tr>
145
+ })}
146
+ <tr><td colspan="11" class="BoletoPontilhado">&nbsp;</td></tr>
147
147
  ${buildSlipSection({
148
148
  logoHtml,
149
149
  bankCodeWithDigit,
@@ -169,17 +169,17 @@ function buildBoletoHtml(data, options = {}) {
169
169
  guarantorName: escapeHtml(guarantorName),
170
170
  rightFooter: `${escapeHtml(heading)} - Ficha de Compensação - Autenticação Mecânica`,
171
171
  bottomContent: buildBarcodeBlock(barcodeImage, barcodeValue),
172
- })}
173
- ${pixPanel}
174
- <tr><td colspan="11" class="BoletoPontilhado">&nbsp;</td></tr>
175
- <tr>
176
- <td colspan="11" style="font-size: 2mm; font-family: arial, verdana; text-align: right; padding: 0.05cm 0.1cm 0.15cm 0">
177
- ${escapeHtml(bankLabel)}: ${escapeHtml(bankName || '-')}&nbsp;&nbsp;|&nbsp;&nbsp;${escapeHtml(bankCodeLabel)}: ${escapeHtml(data.bank.code)}
178
- </td>
179
- </tr>
180
- </table>
181
- </p>
182
- </body>
172
+ })}
173
+ ${pixPanel}
174
+ <tr><td colspan="11" class="BoletoPontilhado">&nbsp;</td></tr>
175
+ <tr>
176
+ <td colspan="11" style="font-size: 2mm; font-family: arial, verdana; text-align: right; padding: 0.05cm 0.1cm 0.15cm 0">
177
+ ${escapeHtml(bankLabel)}: ${escapeHtml(bankName || '-')}&nbsp;&nbsp;|&nbsp;&nbsp;${escapeHtml(bankCodeLabel)}: ${escapeHtml(data.bank.code)}
178
+ </td>
179
+ </tr>
180
+ </table>
181
+ </p>
182
+ </body>
183
183
  </html>`;
184
184
  }
185
185
  async function buildBoletoHtmlWithPixQrCode(data, options = {}, dependencies = {}) {
@@ -225,101 +225,101 @@ function buildInstructionBody(items, additionalInfo, showAdditionalInfo = true)
225
225
  return lines.join('<br />');
226
226
  }
227
227
  function buildSlipSection(data) {
228
- return `
229
- <tr>
230
- <td colspan="4" class="BoletoLogo">${data.logoHtml}</td>
231
- <td colspan="2" class="BoletoCodigoBanco">${data.bankCodeWithDigit}</td>
232
- <td colspan="5" class="BoletoLinhaDigitavel">${data.digitableLine}</td>
233
- </tr>
234
- <tr>
235
- <td colspan="10" class="BoletoTituloEsquerdo">Local de Pagamento</td>
236
- <td class="BoletoTituloDireito">Vencimento</td>
237
- </tr>
238
- <tr>
239
- <td colspan="10" class="BoletoValorEsquerdo" style="text-align: left; padding-left: 0.1cm">${data.localPayment}</td>
240
- <td class="BoletoValorDireito">${data.dueDate}</td>
241
- </tr>
242
- <tr>
243
- <td colspan="10" class="BoletoTituloEsquerdo">Cedente</td>
244
- <td class="BoletoTituloDireito">Agência/Código do Cedente</td>
245
- </tr>
246
- <tr>
247
- <td colspan="10" class="BoletoValorEsquerdo" style="text-align: left; padding-left: 0.1cm">${data.beneficiaryName}</td>
248
- <td class="BoletoValorDireito">${data.agencyCode}</td>
249
- </tr>
250
- <tr>
251
- <td colspan="3" class="BoletoTituloEsquerdo">Data do Documento</td>
252
- <td colspan="4" class="BoletoTituloEsquerdo">Número do Documento</td>
253
- <td class="BoletoTituloEsquerdo">Espécie</td>
254
- <td class="BoletoTituloEsquerdo">Aceite</td>
255
- <td class="BoletoTituloEsquerdo">Data do Processamento</td>
256
- <td class="BoletoTituloDireito">Nosso Número</td>
257
- </tr>
258
- <tr>
259
- <td colspan="3" class="BoletoValorEsquerdo">${data.documentDate}</td>
260
- <td colspan="4" class="BoletoValorEsquerdo">${data.documentNumber}</td>
261
- <td class="BoletoValorEsquerdo">${data.specie}</td>
262
- <td class="BoletoValorEsquerdo">${data.accept}</td>
263
- <td class="BoletoValorEsquerdo">${data.processingDate}</td>
264
- <td class="BoletoValorDireito">${data.ourNumber}</td>
265
- </tr>
266
- <tr>
267
- <td colspan="3" class="BoletoTituloEsquerdo">Uso do Banco</td>
268
- <td colspan="2" class="BoletoTituloEsquerdo">Carteira</td>
269
- <td colspan="2" class="BoletoTituloEsquerdo">Moeda</td>
270
- <td colspan="2" class="BoletoTituloEsquerdo">Quantidade</td>
271
- <td class="BoletoTituloEsquerdo">(x) Valor</td>
272
- <td class="BoletoTituloDireito">(=) Valor do Documento</td>
273
- </tr>
274
- <tr>
275
- <td colspan="3" class="BoletoValorEsquerdo">&nbsp;</td>
276
- <td colspan="2" class="BoletoValorEsquerdo">${data.wallet}</td>
277
- <td colspan="2" class="BoletoValorEsquerdo">R$</td>
278
- <td colspan="2" class="BoletoValorEsquerdo">&nbsp;</td>
279
- <td class="BoletoValorEsquerdo">&nbsp;</td>
280
- <td class="BoletoValorDireito">${data.amount}</td>
281
- </tr>
282
- <tr>
283
- <td colspan="10" class="BoletoTituloEsquerdo">${data.instructionTitle}</td>
284
- <td class="BoletoTituloDireito">(-) Desconto</td>
285
- </tr>
286
- <tr>
287
- <td colspan="10" rowspan="9" class="BoletoValorEsquerdo" style="text-align: left; vertical-align: top; padding-left: 0.1cm">${data.instructionBody}</td>
288
- <td class="BoletoValorDireito">&nbsp;</td>
289
- </tr>
290
- <tr><td class="BoletoTituloDireito">(-) Outras Deduções/Abatimento</td></tr>
291
- <tr><td class="BoletoValorDireito">&nbsp;</td></tr>
292
- <tr><td class="BoletoTituloDireito">(+) Mora/Multa/Juros</td></tr>
293
- <tr><td class="BoletoValorDireito">&nbsp;</td></tr>
294
- <tr><td class="BoletoTituloDireito">(+) Outros Acréscimos</td></tr>
295
- <tr><td class="BoletoValorDireito">&nbsp;</td></tr>
296
- <tr><td class="BoletoTituloDireito">(=) Valor Cobrado</td></tr>
297
- <tr><td class="BoletoValorDireito">&nbsp;</td></tr>
298
- <tr>
299
- <td rowspan="3" class="BoletoTituloSacado">Sacado:</td>
300
- <td colspan="8" class="BoletoValorSacado">${data.payerName}</td>
301
- <td colspan="2" class="BoletoValorSacado">${data.payerDocument}</td>
302
- </tr>
303
- <tr><td colspan="10" class="BoletoValorSacado">${data.payerAddressLine}</td></tr>
304
- <tr><td colspan="10" class="BoletoValorSacado">${data.payerCityLine}</td></tr>
305
- <tr>
306
- <td colspan="2" class="BoletoTituloSacador">Sacador / Avalista:</td>
307
- <td colspan="9" class="BoletoValorSacador">${data.guarantorName}</td>
308
- </tr>
309
- <tr>
310
- <td colspan="11" class="BoletoTituloDireito" style="text-align: right; padding-right: 0.1cm">${data.rightFooter}</td>
311
- </tr>
312
- <tr>
313
- <td colspan="11" height="60" valign="top">${data.bottomContent}</td>
228
+ return `
229
+ <tr>
230
+ <td colspan="4" class="BoletoLogo">${data.logoHtml}</td>
231
+ <td colspan="2" class="BoletoCodigoBanco">${data.bankCodeWithDigit}</td>
232
+ <td colspan="5" class="BoletoLinhaDigitavel">${data.digitableLine}</td>
233
+ </tr>
234
+ <tr>
235
+ <td colspan="10" class="BoletoTituloEsquerdo">Local de Pagamento</td>
236
+ <td class="BoletoTituloDireito">Vencimento</td>
237
+ </tr>
238
+ <tr>
239
+ <td colspan="10" class="BoletoValorEsquerdo" style="text-align: left; padding-left: 0.1cm">${data.localPayment}</td>
240
+ <td class="BoletoValorDireito">${data.dueDate}</td>
241
+ </tr>
242
+ <tr>
243
+ <td colspan="10" class="BoletoTituloEsquerdo">Cedente</td>
244
+ <td class="BoletoTituloDireito">Agência/Código do Cedente</td>
245
+ </tr>
246
+ <tr>
247
+ <td colspan="10" class="BoletoValorEsquerdo" style="text-align: left; padding-left: 0.1cm">${data.beneficiaryName}</td>
248
+ <td class="BoletoValorDireito">${data.agencyCode}</td>
249
+ </tr>
250
+ <tr>
251
+ <td colspan="3" class="BoletoTituloEsquerdo">Data do Documento</td>
252
+ <td colspan="4" class="BoletoTituloEsquerdo">Número do Documento</td>
253
+ <td class="BoletoTituloEsquerdo">Espécie</td>
254
+ <td class="BoletoTituloEsquerdo">Aceite</td>
255
+ <td class="BoletoTituloEsquerdo">Data do Processamento</td>
256
+ <td class="BoletoTituloDireito">Nosso Número</td>
257
+ </tr>
258
+ <tr>
259
+ <td colspan="3" class="BoletoValorEsquerdo">${data.documentDate}</td>
260
+ <td colspan="4" class="BoletoValorEsquerdo">${data.documentNumber}</td>
261
+ <td class="BoletoValorEsquerdo">${data.specie}</td>
262
+ <td class="BoletoValorEsquerdo">${data.accept}</td>
263
+ <td class="BoletoValorEsquerdo">${data.processingDate}</td>
264
+ <td class="BoletoValorDireito">${data.ourNumber}</td>
265
+ </tr>
266
+ <tr>
267
+ <td colspan="3" class="BoletoTituloEsquerdo">Uso do Banco</td>
268
+ <td colspan="2" class="BoletoTituloEsquerdo">Carteira</td>
269
+ <td colspan="2" class="BoletoTituloEsquerdo">Moeda</td>
270
+ <td colspan="2" class="BoletoTituloEsquerdo">Quantidade</td>
271
+ <td class="BoletoTituloEsquerdo">(x) Valor</td>
272
+ <td class="BoletoTituloDireito">(=) Valor do Documento</td>
273
+ </tr>
274
+ <tr>
275
+ <td colspan="3" class="BoletoValorEsquerdo">&nbsp;</td>
276
+ <td colspan="2" class="BoletoValorEsquerdo">${data.wallet}</td>
277
+ <td colspan="2" class="BoletoValorEsquerdo">R$</td>
278
+ <td colspan="2" class="BoletoValorEsquerdo">&nbsp;</td>
279
+ <td class="BoletoValorEsquerdo">&nbsp;</td>
280
+ <td class="BoletoValorDireito">${data.amount}</td>
281
+ </tr>
282
+ <tr>
283
+ <td colspan="10" class="BoletoTituloEsquerdo">${data.instructionTitle}</td>
284
+ <td class="BoletoTituloDireito">(-) Desconto</td>
285
+ </tr>
286
+ <tr>
287
+ <td colspan="10" rowspan="9" class="BoletoValorEsquerdo" style="text-align: left; vertical-align: top; padding-left: 0.1cm">${data.instructionBody}</td>
288
+ <td class="BoletoValorDireito">&nbsp;</td>
289
+ </tr>
290
+ <tr><td class="BoletoTituloDireito">(-) Outras Deduções/Abatimento</td></tr>
291
+ <tr><td class="BoletoValorDireito">&nbsp;</td></tr>
292
+ <tr><td class="BoletoTituloDireito">(+) Mora/Multa/Juros</td></tr>
293
+ <tr><td class="BoletoValorDireito">&nbsp;</td></tr>
294
+ <tr><td class="BoletoTituloDireito">(+) Outros Acréscimos</td></tr>
295
+ <tr><td class="BoletoValorDireito">&nbsp;</td></tr>
296
+ <tr><td class="BoletoTituloDireito">(=) Valor Cobrado</td></tr>
297
+ <tr><td class="BoletoValorDireito">&nbsp;</td></tr>
298
+ <tr>
299
+ <td rowspan="3" class="BoletoTituloSacado">Sacado:</td>
300
+ <td colspan="8" class="BoletoValorSacado">${data.payerName}</td>
301
+ <td colspan="2" class="BoletoValorSacado">${data.payerDocument}</td>
302
+ </tr>
303
+ <tr><td colspan="10" class="BoletoValorSacado">${data.payerAddressLine}</td></tr>
304
+ <tr><td colspan="10" class="BoletoValorSacado">${data.payerCityLine}</td></tr>
305
+ <tr>
306
+ <td colspan="2" class="BoletoTituloSacador">Sacador / Avalista:</td>
307
+ <td colspan="9" class="BoletoValorSacador">${data.guarantorName}</td>
308
+ </tr>
309
+ <tr>
310
+ <td colspan="11" class="BoletoTituloDireito" style="text-align: right; padding-right: 0.1cm">${data.rightFooter}</td>
311
+ </tr>
312
+ <tr>
313
+ <td colspan="11" height="60" valign="top">${data.bottomContent}</td>
314
314
  </tr>`;
315
315
  }
316
316
  function buildBarcodeBlock(barcodeImage, barcodeValue) {
317
317
  const imageHtml = barcodeImage
318
318
  ? `<img src="${escapeHtml(barcodeImage)}" alt="Código de barras" style="max-width: 100%; height: auto" />`
319
319
  : '';
320
- return `
321
- ${imageHtml}
322
- <div class="BoletoCodBarrasTexto" data-barcode="${barcodeValue}">${barcodeValue}</div>
320
+ return `
321
+ ${imageHtml}
322
+ <div class="BoletoCodBarrasTexto" data-barcode="${barcodeValue}">${barcodeValue}</div>
323
323
  `;
324
324
  }
325
325
  function buildPixPanel(pix) {
@@ -327,16 +327,16 @@ function buildPixPanel(pix) {
327
327
  return '';
328
328
  }
329
329
  const qrCode = pix.qrCodeSvg ? `<div style="margin-bottom: 0.12cm">${pix.qrCodeSvg}</div>` : '';
330
- return `
331
- <tr>
332
- <td colspan="11">
333
- <div class="BoletoPix">
334
- <strong>PIX</strong><br />
335
- ${qrCode}
336
- <div class="BoletoPixPayload">${escapeHtml(pix.payload)}</div>
337
- </div>
338
- </td>
339
- </tr>
330
+ return `
331
+ <tr>
332
+ <td colspan="11">
333
+ <div class="BoletoPix">
334
+ <strong>PIX</strong><br />
335
+ ${qrCode}
336
+ <div class="BoletoPixPayload">${escapeHtml(pix.payload)}</div>
337
+ </div>
338
+ </td>
339
+ </tr>
340
340
  `;
341
341
  }
342
342
  function getAdditionalInfo(data, key, fallback) {
@@ -0,0 +1,73 @@
1
+ import type { DetailRecord as Cnab240DetailRecord } from '../../../types/cnab240';
2
+ import type { DetailRecord, ReturnDetailRecord } from '../../../types/cnab400';
3
+ export type BradescoWalletCode = '09' | '19' | '26';
4
+ export interface BradescoWalletConfig {
5
+ code: BradescoWalletCode;
6
+ description: string;
7
+ cnab240PortfolioCode: string;
8
+ cnab400WalletType: string;
9
+ aliases: readonly string[];
10
+ }
11
+ export type BradescoOurNumberCheckDigit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'P';
12
+ export interface BradescoOurNumberResult {
13
+ baseNumber: string;
14
+ checkDigit: BradescoOurNumberCheckDigit;
15
+ formatted: string;
16
+ }
17
+ export type BradescoOccurrenceCode = '02' | '03' | '06' | '09' | '10' | '11' | '12' | '13' | '14' | '15' | '16' | '17' | '18' | '19' | '20' | '23' | '24' | '25' | '26' | '27' | '28' | '30';
18
+ export type BradescoOccurrenceCategory = 'entry' | 'rejection' | 'settlement' | 'instruction' | 'maintenance' | 'charge' | 'payer';
19
+ export interface BradescoOccurrenceMapping {
20
+ code: BradescoOccurrenceCode;
21
+ category: BradescoOccurrenceCategory;
22
+ description: string;
23
+ }
24
+ export interface BradescoRemittanceFields {
25
+ instructionCode: string;
26
+ walletNumber?: string;
27
+ walletType?: string;
28
+ occurrenceCode?: string;
29
+ daysCount?: number;
30
+ }
31
+ export interface BradescoReturnFields {
32
+ walletNumber?: string;
33
+ walletType?: string;
34
+ occurrenceCode?: string;
35
+ ourNumber?: string;
36
+ ourNumberCheckDigit?: string;
37
+ confirmedOurNumber?: string;
38
+ confirmedOurNumberCheckDigit?: string;
39
+ }
40
+ export interface BradescoCnab400RemittanceDetail {
41
+ movementType: 'remittance';
42
+ detail: DetailRecord;
43
+ fields: BradescoRemittanceFields;
44
+ wallet?: BradescoWalletConfig;
45
+ validation: {
46
+ isValid: boolean;
47
+ errors: string[];
48
+ };
49
+ }
50
+ export interface BradescoCnab400ReturnDetail {
51
+ movementType: 'return';
52
+ detail: ReturnDetailRecord;
53
+ fields: BradescoReturnFields;
54
+ wallet?: BradescoWalletConfig;
55
+ occurrence?: BradescoOccurrenceMapping;
56
+ validation: {
57
+ isValid: boolean;
58
+ errors: string[];
59
+ };
60
+ }
61
+ export interface BradescoCnab240Segment {
62
+ movementType: 'cnab240';
63
+ detail: Cnab240DetailRecord;
64
+ walletNumber?: string;
65
+ wallet?: BradescoWalletConfig;
66
+ occurrenceCode: string;
67
+ occurrence?: BradescoOccurrenceMapping;
68
+ validation: {
69
+ isValid: boolean;
70
+ errors: string[];
71
+ };
72
+ }
73
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/adapters/bradesco/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/adapters/bradesco/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from './itau';
2
+ export * from './bradesco';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./itau"), exports);
18
+ __exportStar(require("./bradesco"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/adapters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,6CAA2B"}