@linkiez/boleto-sdk 1.1.4 → 1.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"PdfRenderer.d.ts","sourceRoot":"","sources":["../../../src/generators/pdf/PdfRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,KAAK,WAAW,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAwB,KAAK,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAItF,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,KAAK,eAAe,GAAG,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KAC1C,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,KAAK,oBAAoB,GAAG,CAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,KACE,MAAM,CAAC;AAEZ,MAAM,WAAW,uBAAuB;IACtC,kBAAkB,CAAC,EAAE,eAAe,CAAC;IACrC,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B;AAUD,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,YAAY,CAAC,OAAO,WAAW,CAAC,EAC1C,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,0BAA0B,EACnC,YAAY,GAAE,uBAA4B,GACzC,OAAO,CAAC,IAAI,CAAC,CAqFf"}
1
+ {"version":3,"file":"PdfRenderer.d.ts","sourceRoot":"","sources":["../../../src/generators/pdf/PdfRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,KAAK,WAAW,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAwB,KAAK,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAItF,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,KAAK,eAAe,GAAG,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KAC1C,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,KAAK,oBAAoB,GAAG,CAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,KACE,MAAM,CAAC;AAEZ,MAAM,WAAW,uBAAuB;IACtC,kBAAkB,CAAC,EAAE,eAAe,CAAC;IACrC,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B;AAUD,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,YAAY,CAAC,OAAO,WAAW,CAAC,EAC1C,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,0BAA0B,EACnC,YAAY,GAAE,uBAA4B,GACzC,OAAO,CAAC,IAAI,CAAC,CA6Kf"}
@@ -10,33 +10,117 @@ const PIX_QR_SIZE = 120;
10
10
  async function renderBoletoToPdf(document, data, options, dependencies = {}) {
11
11
  const { showInstructions, showAdditionalInfo } = (0, PdfTemplate_1.derivePdfLayoutFlags)(options.layout);
12
12
  const fonts = dependencies.fonts;
13
+ const dueDate = formatDateBr(data.payment.dueDate);
14
+ const amount = (0, formatters_1.formatMoney)(data.payment.amount);
15
+ const pageLeft = document.page.margins.left;
16
+ const pageRight = document.page.width - document.page.margins.right;
17
+ const usableWidth = pageRight - pageLeft;
13
18
  setBoldFont(document, fonts);
14
- document.fontSize(18).text(options.title, { align: 'center' });
15
- document.moveDown();
19
+ document.fontSize(19).fillColor('#121315').text('INDUSTRIAL INTEGRITY', pageLeft, document.y, {
20
+ width: usableWidth,
21
+ align: 'left',
22
+ });
16
23
  setRegularFont(document, fonts);
17
- document.fontSize(12).text(`Banco: ${data.bank.code} - ${data.bank.name}`);
18
- document.text(`Beneficiário: ${data.beneficiary.name}`);
19
- document.text(`Pagador: ${data.payer.name}`);
20
- document.text(`Valor: ${(0, formatters_1.formatMoney)(data.payment.amount)}`);
21
- document.text(`Vencimento: ${formatDateIso(data.payment.dueDate)}`);
24
+ document.fontSize(10).fillColor('#46464B').text('FICHA DE COMPENSACAO', pageLeft, document.y, {
25
+ width: usableWidth,
26
+ align: 'left',
27
+ });
28
+ setBoldFont(document, fonts);
29
+ document
30
+ .fontSize(11)
31
+ .fillColor('#121315')
32
+ .text(`${data.bank.code} - ${data.bank.name}`, pageLeft, document.y - 13, {
33
+ width: usableWidth,
34
+ align: 'right',
35
+ });
22
36
  document.moveDown();
37
+ drawCardRow(document, fonts, [
38
+ {
39
+ label: 'Beneficiario',
40
+ value: `${data.beneficiary.name} - ${data.beneficiary.document}`,
41
+ width: usableWidth * 0.5,
42
+ },
43
+ { label: 'Vencimento', value: dueDate, width: usableWidth * 0.25 },
44
+ { label: 'Valor', value: amount, width: usableWidth * 0.25 },
45
+ ]);
46
+ drawCardRow(document, fonts, [
47
+ {
48
+ label: 'Pagador',
49
+ value: `${data.payer.name} - ${data.payer.document}`,
50
+ width: usableWidth,
51
+ },
52
+ ]);
53
+ document.moveDown(0.8);
54
+ document
55
+ .moveTo(pageLeft, document.y)
56
+ .lineTo(pageRight, document.y)
57
+ .dash(3, { space: 2 })
58
+ .strokeColor('#C7C6CB')
59
+ .lineWidth(1)
60
+ .stroke()
61
+ .undash();
62
+ document.moveDown(0.6);
23
63
  setMonoFont(document, fonts);
24
- document.fontSize(11).text(`Linha digitável: ${data.payment.digitableLine}`);
64
+ document.rect(pageLeft, document.y, usableWidth, 22).lineWidth(1).strokeColor('#121315').stroke();
65
+ document
66
+ .fontSize(13)
67
+ .fillColor('#121315')
68
+ .text(data.payment.digitableLine, pageLeft + 8, document.y + 7, {
69
+ width: usableWidth - 16,
70
+ align: 'center',
71
+ });
72
+ document.moveDown(1.8);
73
+ drawCardRow(document, fonts, [
74
+ {
75
+ label: 'Local de Pagamento',
76
+ value: 'Pagavel em qualquer banco ate o vencimento.',
77
+ width: usableWidth * 0.7,
78
+ },
79
+ { label: 'Vencimento', value: dueDate, width: usableWidth * 0.3 },
80
+ ]);
81
+ drawCardRow(document, fonts, [
82
+ {
83
+ label: 'Numero Documento',
84
+ value: data.payment.documentNumber,
85
+ width: usableWidth * 0.35,
86
+ },
87
+ {
88
+ label: 'Nosso Numero',
89
+ value: data.payment.ourNumber,
90
+ width: usableWidth * 0.35,
91
+ },
92
+ {
93
+ label: 'Carteira',
94
+ value: data.additionalInfo?.Carteira ?? '-',
95
+ width: usableWidth * 0.3,
96
+ },
97
+ ]);
25
98
  if (options.includeBarcode && data.payment.barcode) {
26
99
  const barcodeRenderer = dependencies.renderBarcodePng ?? BarcodeRenderer_1.renderI2of5Png;
27
100
  const barcodePng = barcodeRenderer(data.payment.barcode);
28
- document.image(barcodePng, {
101
+ document.moveDown(0.6);
102
+ document.image(barcodePng, pageLeft + 6, document.y, {
29
103
  width: options.barcode.width,
30
104
  height: options.barcode.height,
31
105
  });
106
+ setMonoFont(document, fonts);
107
+ document
108
+ .fontSize(10)
109
+ .fillColor('#121315')
110
+ .text(data.payment.barcode, pageLeft, document.y + options.barcode.height + 4, {
111
+ width: usableWidth,
112
+ align: 'center',
113
+ });
114
+ document.moveDown(2.3);
32
115
  }
33
116
  else {
34
- document.fontSize(9).text(`Código de barras: ${data.payment.barcode}`);
117
+ setMonoFont(document, fonts);
118
+ document.fontSize(9).text(`Codigo de barras: ${data.payment.barcode}`);
35
119
  }
36
120
  document.moveDown();
37
121
  if (showInstructions) {
38
122
  setBoldFont(document, fonts);
39
- document.fontSize(12).text('Instruções', { underline: true });
123
+ document.fontSize(12).text('Instrucoes', { underline: true });
40
124
  if (data.instructions && data.instructions.length > 0) {
41
125
  data.instructions.forEach((instruction) => {
42
126
  setRegularFont(document, fonts);
@@ -45,13 +129,13 @@ async function renderBoletoToPdf(document, data, options, dependencies = {}) {
45
129
  }
46
130
  else {
47
131
  setRegularFont(document, fonts);
48
- document.fontSize(10).text('Sem instruções');
132
+ document.fontSize(10).text('Sem instrucoes');
49
133
  }
50
134
  document.moveDown();
51
135
  }
52
136
  if (showAdditionalInfo) {
53
137
  setBoldFont(document, fonts);
54
- document.fontSize(12).text('Informações adicionais', { underline: true });
138
+ document.fontSize(12).text('Informacoes adicionais', { underline: true });
55
139
  const additionalInfo = data.additionalInfo ?? {};
56
140
  const entries = Object.entries(additionalInfo);
57
141
  if (entries.length > 0) {
@@ -62,7 +146,7 @@ async function renderBoletoToPdf(document, data, options, dependencies = {}) {
62
146
  }
63
147
  else {
64
148
  setRegularFont(document, fonts);
65
- document.fontSize(10).text('Sem informações adicionais');
149
+ document.fontSize(10).text('Sem informacoes adicionais');
66
150
  }
67
151
  document.moveDown();
68
152
  }
@@ -84,8 +168,32 @@ async function renderBoletoToPdf(document, data, options, dependencies = {}) {
84
168
  height: PIX_QR_SIZE,
85
169
  });
86
170
  }
87
- function formatDateIso(value) {
88
- return value.toISOString().slice(0, 10);
171
+ function formatDateBr(value) {
172
+ return value.toLocaleDateString('pt-BR', { timeZone: 'UTC' });
173
+ }
174
+ function drawCardRow(document, fonts, cells) {
175
+ const startX = document.page.margins.left;
176
+ const startY = document.y;
177
+ const rowHeight = 36;
178
+ let offsetX = startX;
179
+ cells.forEach((cell, index) => {
180
+ const width = index === cells.length - 1
181
+ ? document.page.width - document.page.margins.right - offsetX
182
+ : cell.width;
183
+ document.rect(offsetX, startY, width, rowHeight).lineWidth(0.8).strokeColor('#77767B').stroke();
184
+ setRegularFont(document, fonts);
185
+ document
186
+ .fontSize(8)
187
+ .fillColor('#46464B')
188
+ .text(cell.label, offsetX + 5, startY + 4, { width: width - 10, align: 'left' });
189
+ setBoldFont(document, fonts);
190
+ document
191
+ .fontSize(10)
192
+ .fillColor('#121315')
193
+ .text(cell.value, offsetX + 5, startY + 16, { width: width - 10, align: 'left' });
194
+ offsetX += width;
195
+ });
196
+ document.y = startY + rowHeight;
89
197
  }
90
198
  function setRegularFont(document, fonts) {
91
199
  document.font(fonts?.regular ?? 'Helvetica');
@@ -1 +1 @@
1
- {"version":3,"file":"PdfRenderer.js","sourceRoot":"","sources":["../../../src/generators/pdf/PdfRenderer.ts"],"names":[],"mappings":";;AA8CA,8CA0FC;AAvID,yEAAqE;AACrE,kDAAgD;AAEhD,uEAAmE;AACnE,6DAA8D;AAC9D,+CAAsF;AAEtF,MAAM,WAAW,GAAG,GAAG,CAAC;AAsCjB,KAAK,UAAU,iBAAiB,CACrC,QAA0C,EAC1C,IAAwB,EACxB,OAAmC,EACnC,eAAwC,EAAE;IAE1C,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,IAAA,kCAAoB,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACtF,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;IAEjC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/D,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAEpB,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3E,QAAQ,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IACxD,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAA,wBAAW,EAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5D,QAAQ,CAAC,IAAI,CAAC,eAAe,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpE,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAEpB,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAE7E,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACnD,MAAM,eAAe,GAAG,YAAY,CAAC,gBAAgB,IAAI,gCAAc,CAAC;QACxE,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzD,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE;YACzB,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK;YAC5B,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;SAC/B,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAEpB,IAAI,gBAAgB,EAAE,CAAC;QACrB,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;gBACxC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/C,CAAC;QACD,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,kBAAkB,EAAE,CAAC;QACvB,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,MAAM,cAAc,GAA2B,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;QACzE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC/B,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC3D,CAAC;QACD,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;QACxD,OAAO;IACT,CAAC;IAED,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEpD,IAAA,wCAAkB,EAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAE7C,MAAM,UAAU,GAAG,YAAY,CAAC,kBAAkB,IAAI,mCAAkB,CAAC;IACzE,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;QACvD,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,CAAC;KACV,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE;QACpB,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,KAAW;IAChC,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,cAAc,CAAC,QAA4B,EAAE,KAAmC;IACvF,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,WAAW,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,WAAW,CAAC,QAA4B,EAAE,KAAmC;IACpF,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,gBAAgB,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,WAAW,CAAC,QAA4B,EAAE,KAAmC;IACpF,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,SAAS,CAAC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"PdfRenderer.js","sourceRoot":"","sources":["../../../src/generators/pdf/PdfRenderer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GenericTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/GenericTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG3E,qBAAa,eAAgB,YAAW,cAAc;IAC7C,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM;CAShD"}
1
+ {"version":3,"file":"GenericTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/GenericTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG3E,qBAAa,eAAgB,YAAW,cAAc;IAC7C,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM;CAGhD"}
@@ -1,16 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GenericTemplate = void 0;
4
- const HtmlTemplateBuilder_1 = require("./HtmlTemplateBuilder");
4
+ const IndustrialIntegrityTemplate_1 = require("./IndustrialIntegrityTemplate");
5
5
  class GenericTemplate {
6
6
  render(data) {
7
- return (0, HtmlTemplateBuilder_1.buildBoletoHtml)(data, {
8
- title: 'Boleto',
9
- heading: 'Boleto',
10
- bankLabel: 'Banco',
11
- bankCodeLabel: 'Banco',
12
- showBankName: false,
13
- });
7
+ return new IndustrialIntegrityTemplate_1.IndustrialIntegrityTemplate().render(data);
14
8
  }
15
9
  }
16
10
  exports.GenericTemplate = GenericTemplate;
@@ -1 +1 @@
1
- {"version":3,"file":"GenericTemplate.js","sourceRoot":"","sources":["../../src/templates/GenericTemplate.ts"],"names":[],"mappings":";;;AACA,+DAAwD;AAExD,MAAa,eAAe;IACnB,MAAM,CAAC,IAAwB;QACpC,OAAO,IAAA,qCAAe,EAAC,IAAI,EAAE;YAC3B,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,OAAO;YAClB,aAAa,EAAE,OAAO;YACtB,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;IACL,CAAC;CACF;AAVD,0CAUC"}
1
+ {"version":3,"file":"GenericTemplate.js","sourceRoot":"","sources":["../../src/templates/GenericTemplate.ts"],"names":[],"mappings":";;;AACA,+EAA4E;AAE5E,MAAa,eAAe;IACnB,MAAM,CAAC,IAAwB;QACpC,OAAO,IAAI,yDAA2B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;CACF;AAJD,0CAIC"}
@@ -0,0 +1,5 @@
1
+ import type { BoletoTemplate, BoletoTemplateData } from './BoletoTemplate';
2
+ export declare class IndustrialIntegrityTemplate implements BoletoTemplate {
3
+ render(data: BoletoTemplateData): string;
4
+ }
5
+ //# sourceMappingURL=IndustrialIntegrityTemplate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndustrialIntegrityTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/IndustrialIntegrityTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG3E,qBAAa,2BAA4B,YAAW,cAAc;IACzD,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM;CAuIhD"}
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IndustrialIntegrityTemplate = void 0;
4
+ const BarcodeRenderer_1 = require("../generators/barcode/BarcodeRenderer");
5
+ class IndustrialIntegrityTemplate {
6
+ render(data) {
7
+ const dueDate = formatDateBr(data.payment.dueDate);
8
+ const amount = formatMoney(data.payment.amount);
9
+ const instructions = (data.instructions ?? [])
10
+ .slice(0, 3)
11
+ .map((item) => `<p>${escapeHtml(item)}</p>`)
12
+ .join('');
13
+ const payerAddress = escapeHtml(data.payer.address || '-');
14
+ const bankCode = escapeHtml(data.bank.code);
15
+ const digitableLine = escapeHtml(data.payment.digitableLine);
16
+ const barcodeSvg = (0, BarcodeRenderer_1.renderI2of5Svg)(data.payment.barcode, {
17
+ height: 56,
18
+ narrowWidth: 2,
19
+ wideWidth: 4,
20
+ quietZone: 12,
21
+ });
22
+ const pixPayload = data.payment.pix?.payload ? escapeHtml(data.payment.pix.payload) : null;
23
+ const pixQrCodeSvg = data.payment.pix?.qrCodeSvg ?? null;
24
+ return `<!DOCTYPE html>
25
+ <html lang="pt-BR">
26
+ <head>
27
+ <meta charset="utf-8" />
28
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
29
+ <title>Industrial Integrity - Ficha de Compensacao</title>
30
+ <style>
31
+ body { background: #f8f9fa; margin: 0; font-family: Inter, Arial, sans-serif; color: #000; }
32
+ .page { width: 210mm; min-height: 297mm; margin: 10mm auto; padding: 16mm; background: #fff; color: #000; }
33
+ .top { display: flex; justify-content: space-between; align-items: flex-end; border-bottom: 2px dashed #c7c6cb; padding-bottom: 12px; margin-bottom: 14px; }
34
+ .brand { font-size: 28px; font-weight: 800; letter-spacing: -0.02em; }
35
+ .subtitle { font-size: 11px; color: #000; letter-spacing: 0.08em; }
36
+ .bank-chip { background: #27272a; color: #fff; padding: 3px 8px; border-radius: 3px; font-weight: 700; }
37
+ .grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; border: 1px solid #77767b; margin-bottom: 18px; }
38
+ .cell { border-right: 1px solid #77767b; border-bottom: 1px solid #77767b; padding: 8px; }
39
+ .cell:nth-child(4n) { border-right: none; }
40
+ .label { display: block; font-size: 9px; text-transform: uppercase; letter-spacing: 0.05em; color: #000; margin-bottom: 4px; }
41
+ .value { font-size: 13px; font-weight: 600; }
42
+ .cut { border-top: 2px dashed #c7c6cb; margin: 18px 0; }
43
+ .line { border: 2px solid #000; border-bottom: none; padding: 8px 10px; font-size: 20px; font-weight: 700; letter-spacing: 0.02em; }
44
+ .table { width: 100%; border-collapse: collapse; border: 2px solid #000; border-top: none; }
45
+ .table td { border: 1px solid #77767b; padding: 6px; vertical-align: top; }
46
+ .table .label { font-size: 8px; margin-bottom: 2px; }
47
+ .table .value { font-size: 12px; }
48
+ .instructions p { margin: 4px 0; font-size: 12px; }
49
+ .barcode-box { border: 1px solid #77767b; margin-top: 20px; padding: 10px; }
50
+ .barcode-image { display: flex; justify-content: center; overflow: hidden; }
51
+ .barcode-image svg { max-width: 100%; height: auto; }
52
+ .barcode-text { font-family: 'Courier New', monospace; font-size: 13px; letter-spacing: 1px; text-align: center; }
53
+ .pix-box { border: 1px solid #77767b; margin-top: 12px; padding: 10px; }
54
+ .pix-content { display: flex; gap: 12px; align-items: center; }
55
+ .pix-qr { width: 180px; height: 180px; display: flex; align-items: center; justify-content: center; }
56
+ .pix-qr svg { width: 100%; height: 100%; }
57
+ .pix-payload { font-family: 'Courier New', monospace; font-size: 11px; word-break: break-all; }
58
+ .footer { font-size: 10px; color: #000; text-align: right; margin-top: 8px; }
59
+ </style>
60
+ </head>
61
+ <body>
62
+ <main class="page">
63
+ <header class="top">
64
+ <div>
65
+ <div class="brand">INDUSTRIAL INTEGRITY</div>
66
+ <div class="subtitle">FICHA DE COMPENSACAO</div>
67
+ </div>
68
+ <div>
69
+ <span class="bank-chip">${bankCode}</span>
70
+ <span style="margin-left: 8px; font-weight: 700">${escapeHtml(data.bank.name)}</span>
71
+ </div>
72
+ </header>
73
+
74
+ <section class="grid">
75
+ <div class="cell" style="grid-column: span 2">
76
+ <span class="label">Beneficiario</span>
77
+ <span class="value">${escapeHtml(data.beneficiary.name)} - ${escapeHtml(data.beneficiary.document)}</span>
78
+ </div>
79
+ <div class="cell">
80
+ <span class="label">Vencimento</span>
81
+ <span class="value">${escapeHtml(dueDate)}</span>
82
+ </div>
83
+ <div class="cell">
84
+ <span class="label">Valor</span>
85
+ <span class="value">${escapeHtml(amount)}</span>
86
+ </div>
87
+ <div class="cell" style="grid-column: span 2">
88
+ <span class="label">Pagador</span>
89
+ <span class="value">${escapeHtml(data.payer.name)} - ${escapeHtml(data.payer.document)}</span>
90
+ </div>
91
+ <div class="cell" style="grid-column: span 2">
92
+ <span class="label">Endereco</span>
93
+ <span class="value">${payerAddress}</span>
94
+ </div>
95
+ </section>
96
+
97
+ <div class="cut"></div>
98
+
99
+ <div class="line">${digitableLine}</div>
100
+ <table class="table">
101
+ <tr>
102
+ <td colspan="3"><span class="label">Local de Pagamento</span><span class="value">Pagavel em qualquer banco ate o vencimento.</span></td>
103
+ <td><span class="label">Vencimento</span><span class="value">${escapeHtml(dueDate)}</span></td>
104
+ </tr>
105
+ <tr>
106
+ <td colspan="3"><span class="label">Beneficiario</span><span class="value">${escapeHtml(data.beneficiary.name)} - ${escapeHtml(data.beneficiary.document)}</span></td>
107
+ <td><span class="label">Nosso Numero</span><span class="value">${escapeHtml(data.payment.ourNumber)}</span></td>
108
+ </tr>
109
+ <tr>
110
+ <td><span class="label">Data Doc.</span><span class="value">${escapeHtml(dueDate)}</span></td>
111
+ <td><span class="label">Numero Doc.</span><span class="value">${escapeHtml(data.payment.documentNumber)}</span></td>
112
+ <td><span class="label">Carteira</span><span class="value">${escapeHtml(data.additionalInfo?.Carteira ?? '-')}</span></td>
113
+ <td><span class="label">Valor Documento</span><span class="value">${escapeHtml(amount)}</span></td>
114
+ </tr>
115
+ <tr>
116
+ <td colspan="4" class="instructions"><span class="label">Instrucoes</span>${instructions || '<p>Sem instrucoes.</p>'}</td>
117
+ </tr>
118
+ </table>
119
+
120
+ <section class="barcode-box">
121
+ <div class="barcode-image">${barcodeSvg}</div>
122
+ <div class="barcode-text">${escapeHtml(data.payment.barcode)}</div>
123
+ <div class="footer">AUTENTICACAO MECANICA - FICHA DE COMPENSACAO</div>
124
+ </section>
125
+ ${pixPayload
126
+ ? `<section class="pix-box">
127
+ <span class="label">PIX Copia e Cola</span>
128
+ <div class="pix-content">
129
+ <div class="pix-qr">${pixQrCodeSvg ?? '<span class="label">Sem QR</span>'}</div>
130
+ <div class="pix-payload">${pixPayload}</div>
131
+ </div>
132
+ </section>`
133
+ : ''}
134
+ </main>
135
+ </body>
136
+ </html>`;
137
+ }
138
+ }
139
+ exports.IndustrialIntegrityTemplate = IndustrialIntegrityTemplate;
140
+ function escapeHtml(value) {
141
+ return value
142
+ .replaceAll('&', '&amp;')
143
+ .replaceAll('<', '&lt;')
144
+ .replaceAll('>', '&gt;')
145
+ .replaceAll('"', '&quot;')
146
+ .replaceAll("'", '&#39;');
147
+ }
148
+ function formatDateBr(value) {
149
+ const date = value instanceof Date ? value : new Date(value);
150
+ if (Number.isNaN(date.getTime())) {
151
+ return '-';
152
+ }
153
+ return date.toLocaleDateString('pt-BR', { timeZone: 'UTC' });
154
+ }
155
+ function formatMoney(amount) {
156
+ return new Intl.NumberFormat('pt-BR', {
157
+ style: 'currency',
158
+ currency: 'BRL',
159
+ }).format(amount);
160
+ }
161
+ //# sourceMappingURL=IndustrialIntegrityTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndustrialIntegrityTemplate.js","sourceRoot":"","sources":["../../src/templates/IndustrialIntegrityTemplate.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,5 @@
1
- export * from './BBTemplate';
2
1
  export * from './BoletoTemplate';
3
- export * from './BradescoTemplate';
4
- export * from './GenericTemplate';
5
2
  export * from './HtmlTemplateBuilder';
6
- export * from './ItauTemplate';
3
+ export * from './IndustrialIntegrityTemplate';
7
4
  export * from './TemplateRenderer';
8
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC"}
@@ -14,11 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./BBTemplate"), exports);
18
17
  __exportStar(require("./BoletoTemplate"), exports);
19
- __exportStar(require("./BradescoTemplate"), exports);
20
- __exportStar(require("./GenericTemplate"), exports);
21
18
  __exportStar(require("./HtmlTemplateBuilder"), exports);
22
- __exportStar(require("./ItauTemplate"), exports);
19
+ __exportStar(require("./IndustrialIntegrityTemplate"), exports);
23
20
  __exportStar(require("./TemplateRenderer"), exports);
24
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,mDAAiC;AACjC,qDAAmC;AACnC,oDAAkC;AAClC,wDAAsC;AACtC,iDAA+B;AAC/B,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,wDAAsC;AACtC,gEAA8C;AAC9C,qDAAmC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@linkiez/boleto-sdk",
3
- "version": "1.1.4",
3
+ "version": "1.2.0",
4
4
  "description": "SDK for Brazilian banking boletos and CNAB files processing",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -81,6 +81,7 @@
81
81
  "jest": "^29.7.0",
82
82
  "jest-sonar-reporter": "^2.0.0",
83
83
  "lint-staged": "^17.0.4",
84
+ "playwright": "^1.60.0",
84
85
  "prettier": "^3.2.4",
85
86
  "semantic-release": "^25",
86
87
  "sonarqube-scanner": "^4.3.6",
@@ -1,5 +0,0 @@
1
- import type { BoletoTemplate, BoletoTemplateData } from './BoletoTemplate';
2
- export declare class BBTemplate implements BoletoTemplate {
3
- render(data: BoletoTemplateData): string;
4
- }
5
- //# sourceMappingURL=BBTemplate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BBTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/BBTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG3E,qBAAa,UAAW,YAAW,cAAc;IACxC,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM;CAOhD"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BBTemplate = void 0;
4
- const HtmlTemplateBuilder_1 = require("./HtmlTemplateBuilder");
5
- class BBTemplate {
6
- render(data) {
7
- return (0, HtmlTemplateBuilder_1.buildBoletoHtml)(data, {
8
- title: 'Boleto - Banco do Brasil',
9
- heading: 'Boleto Banco do Brasil',
10
- bankCodeLabel: 'Código do banco',
11
- });
12
- }
13
- }
14
- exports.BBTemplate = BBTemplate;
15
- //# sourceMappingURL=BBTemplate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BBTemplate.js","sourceRoot":"","sources":["../../src/templates/BBTemplate.ts"],"names":[],"mappings":";;;AACA,+DAAwD;AAExD,MAAa,UAAU;IACd,MAAM,CAAC,IAAwB;QACpC,OAAO,IAAA,qCAAe,EAAC,IAAI,EAAE;YAC3B,KAAK,EAAE,0BAA0B;YACjC,OAAO,EAAE,wBAAwB;YACjC,aAAa,EAAE,iBAAiB;SACjC,CAAC,CAAC;IACL,CAAC;CACF;AARD,gCAQC"}
@@ -1,5 +0,0 @@
1
- import type { BoletoTemplate, BoletoTemplateData } from './BoletoTemplate';
2
- export declare class BradescoTemplate implements BoletoTemplate {
3
- render(data: BoletoTemplateData): string;
4
- }
5
- //# sourceMappingURL=BradescoTemplate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BradescoTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/BradescoTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG3E,qBAAa,gBAAiB,YAAW,cAAc;IAC9C,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM;CAOhD"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BradescoTemplate = void 0;
4
- const HtmlTemplateBuilder_1 = require("./HtmlTemplateBuilder");
5
- class BradescoTemplate {
6
- render(data) {
7
- return (0, HtmlTemplateBuilder_1.buildBoletoHtml)(data, {
8
- title: 'Boleto - Bradesco',
9
- heading: 'Boleto Bradesco',
10
- bankCodeLabel: 'Código do banco',
11
- });
12
- }
13
- }
14
- exports.BradescoTemplate = BradescoTemplate;
15
- //# sourceMappingURL=BradescoTemplate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BradescoTemplate.js","sourceRoot":"","sources":["../../src/templates/BradescoTemplate.ts"],"names":[],"mappings":";;;AACA,+DAAwD;AAExD,MAAa,gBAAgB;IACpB,MAAM,CAAC,IAAwB;QACpC,OAAO,IAAA,qCAAe,EAAC,IAAI,EAAE;YAC3B,KAAK,EAAE,mBAAmB;YAC1B,OAAO,EAAE,iBAAiB;YAC1B,aAAa,EAAE,iBAAiB;SACjC,CAAC,CAAC;IACL,CAAC;CACF;AARD,4CAQC"}
@@ -1,5 +0,0 @@
1
- import type { BoletoTemplate, BoletoTemplateData } from './BoletoTemplate';
2
- export declare class ItauTemplate implements BoletoTemplate {
3
- render(data: BoletoTemplateData): string;
4
- }
5
- //# sourceMappingURL=ItauTemplate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ItauTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/ItauTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG3E,qBAAa,YAAa,YAAW,cAAc;IAC1C,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM;CAOhD"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ItauTemplate = void 0;
4
- const HtmlTemplateBuilder_1 = require("./HtmlTemplateBuilder");
5
- class ItauTemplate {
6
- render(data) {
7
- return (0, HtmlTemplateBuilder_1.buildBoletoHtml)(data, {
8
- title: 'Boleto - Itaú',
9
- heading: 'Boleto Itaú',
10
- bankCodeLabel: 'Código do banco',
11
- });
12
- }
13
- }
14
- exports.ItauTemplate = ItauTemplate;
15
- //# sourceMappingURL=ItauTemplate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ItauTemplate.js","sourceRoot":"","sources":["../../src/templates/ItauTemplate.ts"],"names":[],"mappings":";;;AACA,+DAAwD;AAExD,MAAa,YAAY;IAChB,MAAM,CAAC,IAAwB;QACpC,OAAO,IAAA,qCAAe,EAAC,IAAI,EAAE;YAC3B,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE,aAAa;YACtB,aAAa,EAAE,iBAAiB;SACjC,CAAC,CAAC;IACL,CAAC;CACF;AARD,oCAQC"}