@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
package/README.md CHANGED
@@ -1,168 +1,185 @@
1
- # 🎫 BoletoSDK
2
-
3
- Brazilian bank slip (boleto) & CNAB processing library with type safety, validation, and ready-to-render assets.
4
-
5
- [![npm version](https://badge.fury.io/js/@linkiez%2Fboleto-sdk.svg)](https://www.npmjs.com/package/@linkiez/boleto-sdk)
6
- [![CI](https://github.com/linkiez/BoletoSDK/workflows/CI/badge.svg)](https://github.com/linkiez/BoletoSDK/actions)
7
- [![Coverage](https://img.shields.io/codecov/c/github/linkiez/BoletoSDK)](https://codecov.io/gh/linkiez/BoletoSDK)
8
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
9
- [![TypeScript](https://img.shields.io/badge/TypeScript-5.3-blue.svg)](https://www.typescriptlang.org/)
10
-
11
- Parse, generate, and validate CNAB 240/400 files with consistent APIs.
12
-
13
- ## 🌟 Highlights
14
-
15
- - CNAB 240/400 parsing, generation, and validation
16
- - Boleto assets: barcode, PIX QR, HTML/PDF (pt-BR labels)
17
- - Bank constants, layout validation, and robust tests
18
-
19
- ## 🧾 Boleto Generation
20
-
21
- ```typescript
22
- import {
23
- buildBoletoHtml,
24
- generateBarcode,
25
- generateBoletoEmail,
26
- generateBoletoPdfBuffer,
27
- generatePixQRCode,
28
- } from '@linkiez/boleto-sdk';
29
-
30
- const barcode = generateBarcode({
31
- bankCode: '341',
32
- currencyCode: '9',
33
- dueDate: new Date('2026-02-28'),
34
- amount: 150.5,
35
- freeField: '1234567890123456789012345',
36
- });
37
-
38
- const pix = generatePixQRCode({
39
- key: '12345678000195',
40
- amount: 150.5,
41
- merchantName: 'ACME CORP',
42
- merchantCity: 'SAO PAULO',
43
- transactionId: 'INV001',
44
- });
45
-
46
- const boletoData = {
47
- beneficiary: {
48
- name: 'ACME CORP',
49
- document: '12345678000195',
50
- address: 'Avenida 1, 1000',
51
- },
52
- payer: {
53
- name: 'Joao da Silva',
54
- document: '12345678901',
55
- address: 'Rua 2, 200',
56
- },
57
- payment: {
58
- documentNumber: 'DOC-001',
59
- ourNumber: '12345678',
60
- amount: 150.5,
61
- dueDate: new Date('2026-02-28'),
62
- barcode: barcode.barcode,
63
- digitableLine: barcode.digitableLine,
64
- pix: { payload: pix.payload },
65
- },
66
- bank: { code: '341', name: 'ITAU UNIBANCO SA' },
67
- };
68
-
69
- const html = buildBoletoHtml(boletoData, { layout: 'detailed' });
70
- const pdf = await generateBoletoPdfBuffer(boletoData, { includePixQr: true });
71
- ```
72
-
73
- ## 🚀 Quick Start
74
-
75
- ```bash
76
- npm install @linkiez/boleto-sdk
77
- ```
78
-
79
- ```typescript
80
- import { parseCnab, generateCnab } from '@linkiez/boleto-sdk';
81
-
82
- const parsed = parseCnab(content);
83
- const output = generateCnab(parsed);
84
- ```
85
-
86
- ```typescript
87
- import {
88
- generateBarcode,
89
- generatePixQRCode,
90
- generateBoletoPdfBuffer,
91
- } from '@linkiez/boleto-sdk';
92
-
93
- const { barcode, digitableLine } = generateBarcode({
94
- bankCode: '341',
95
- dueDate: new Date('2025-02-10'),
96
- amount: 150.5,
97
- freeField: '1234567890123456789012345',
98
- });
99
-
100
- const pix = generatePixQRCode({
101
- key: '12345678000195',
102
- amount: 150.5,
103
- merchantName: 'ACME CORP',
104
- merchantCity: 'SAO PAULO',
105
- transactionId: 'INV001',
106
- });
107
-
108
- const pdf = await generateBoletoPdfBuffer({
109
- beneficiary: { name: 'ACME CORP', document: '12345678000195', address: 'Avenida 1' },
110
- payer: { name: 'Joao da Silva', document: '12345678901', address: 'Rua 2' },
111
- payment: {
112
- documentNumber: 'DOC-001',
113
- ourNumber: '12345678',
114
- amount: 150.5,
115
- dueDate: new Date('2025-02-10'),
116
- barcode,
117
- digitableLine,
118
- pix: { payload: pix.payload },
119
- },
120
- bank: { code: '341', name: 'ITAU UNIBANCO SA' },
121
- });
122
- ```
123
-
124
- ## 📚 Documentation
125
-
126
- ### Core
127
-
128
- - [API Reference](doc/API-REFERENCE.md)
129
- - [CNAB240 Guide](doc/CNAB240_GUIDE.md)
130
- - [CNAB400 Usage Guide](doc/CNAB400-USAGE-GUIDE.md)
131
- - [Boleto Generation Guide](doc/BOLETO-GENERATION.md)
132
- - [Examples](doc/EXAMPLES.md)
133
-
134
- ### Specs and Validation
135
-
136
- - [CNAB240 FEBRABAN Spec](doc/CNAB240-FEBRABAN.md)
137
- - [CNAB400 Positions Validation](doc/CNAB400_POSITIONS_VALIDATION.md)
138
- - [Segment Positions Validation](doc/SEGMENT_POSITIONS_VALIDATION.md)
139
- - [Business Rules](doc/BUSINESS_RULES.md)
140
- - [Business Rules Sources](doc/BUSINESS_RULES_SOURCES.md)
141
-
142
- ### Supporting Docs
143
-
144
- - [Bank Differences](doc/BANK_DIFFERENCES.md)
145
- - [FAQ](doc/FAQ.md)
146
- - [Migration](doc/MIGRATION.md)
147
- - [SonarQube](doc/SONARQUBE.md)
148
- - [CNAB400 Bank Samples](doc)
149
-
150
- ### Project
151
-
152
- - [Architecture](ARCHITECTURE.md)
153
- - [Testing](TESTING.md)
154
- - [Contributing](CONTRIBUTING.md)
155
- - [Roadmap](ROADMAP.md)
156
-
157
- ## 🛠️ Development
158
-
159
- See [CONTRIBUTING.md](CONTRIBUTING.md) and [TESTING.md](TESTING.md) for setup, workflows, and conventions.
160
-
161
- ## 📜 License
162
-
163
- APACHE. See [LICENSE](LICENSE).
164
-
165
- ## 🔗 Links
166
-
167
- - [NPM Package](https://www.npmjs.com/package/@linkiez/boleto-sdk)
168
- - [Report Issues](https://github.com/linkiez/BoletoSDK/issues)
1
+ # 🎫 BoletoSDK
2
+
3
+ Brazilian bank slip (boleto) & CNAB processing library with type safety, validation, and ready-to-render assets.
4
+
5
+ [![npm version](https://badge.fury.io/js/@linkiez%2Fboleto-sdk.svg)](https://www.npmjs.com/package/@linkiez/boleto-sdk)
6
+ [![GitHub release](https://img.shields.io/github/v/release/linkiez/BoletoSDK)](https://github.com/linkiez/BoletoSDK/releases)
7
+ [![CI](https://github.com/linkiez/BoletoSDK/workflows/CI/badge.svg)](https://github.com/linkiez/BoletoSDK/actions)
8
+ [![Coverage](https://img.shields.io/codecov/c/github/linkiez/BoletoSDK)](https://codecov.io/gh/linkiez/BoletoSDK)
9
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
10
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.3-blue.svg)](https://www.typescriptlang.org/)
11
+
12
+ Parse, generate, and validate CNAB 240/400 files with consistent APIs.
13
+
14
+ ## 🌟 Highlights
15
+
16
+ - CNAB 240/400 parsing, generation, and validation
17
+ - Boleto assets: barcode, PIX QR, HTML/PDF (pt-BR labels)
18
+ - Bank constants, layout validation, and robust tests
19
+
20
+ ## 🧾 Boleto Generation
21
+
22
+ ```typescript
23
+ import {
24
+ buildBoletoHtml,
25
+ generateBarcode,
26
+ generateBoletoEmail,
27
+ generateBoletoPdfBuffer,
28
+ generatePixQRCode,
29
+ } from '@linkiez/boleto-sdk';
30
+
31
+ const barcode = generateBarcode({
32
+ bankCode: '341',
33
+ currencyCode: '9',
34
+ dueDate: new Date('2026-02-28'),
35
+ amount: 150.5,
36
+ freeField: '1234567890123456789012345',
37
+ });
38
+
39
+ const pix = generatePixQRCode({
40
+ key: '12345678000195',
41
+ amount: 150.5,
42
+ merchantName: 'ACME CORP',
43
+ merchantCity: 'SAO PAULO',
44
+ transactionId: 'INV001',
45
+ });
46
+
47
+ const boletoData = {
48
+ beneficiary: {
49
+ name: 'ACME CORP',
50
+ document: '12345678000195',
51
+ address: 'Avenida 1, 1000',
52
+ },
53
+ payer: {
54
+ name: 'Joao da Silva',
55
+ document: '12345678901',
56
+ address: 'Rua 2, 200',
57
+ },
58
+ payment: {
59
+ documentNumber: 'DOC-001',
60
+ ourNumber: '12345678',
61
+ amount: 150.5,
62
+ dueDate: new Date('2026-02-28'),
63
+ barcode: barcode.barcode,
64
+ digitableLine: barcode.digitableLine,
65
+ pix: { payload: pix.payload },
66
+ },
67
+ bank: { code: '341', name: 'ITAU UNIBANCO SA' },
68
+ };
69
+
70
+ const html = buildBoletoHtml(boletoData, { layout: 'detailed' });
71
+ const pdf = await generateBoletoPdfBuffer(boletoData, { includePixQr: true });
72
+ ```
73
+
74
+ ## 🚀 Quick Start
75
+
76
+ ```bash
77
+ npm install @linkiez/boleto-sdk
78
+ ```
79
+
80
+ ```typescript
81
+ import { parseCnab, generateCnab } from '@linkiez/boleto-sdk';
82
+
83
+ const parsed = parseCnab(content);
84
+ const output = generateCnab(parsed);
85
+ ```
86
+
87
+ ```typescript
88
+ import {
89
+ generateBarcode,
90
+ generatePixQRCode,
91
+ generateBoletoPdfBuffer,
92
+ } from '@linkiez/boleto-sdk';
93
+
94
+ const { barcode, digitableLine } = generateBarcode({
95
+ bankCode: '341',
96
+ dueDate: new Date('2025-02-10'),
97
+ amount: 150.5,
98
+ freeField: '1234567890123456789012345',
99
+ });
100
+
101
+ const pix = generatePixQRCode({
102
+ key: '12345678000195',
103
+ amount: 150.5,
104
+ merchantName: 'ACME CORP',
105
+ merchantCity: 'SAO PAULO',
106
+ transactionId: 'INV001',
107
+ });
108
+
109
+ const pdf = await generateBoletoPdfBuffer({
110
+ beneficiary: { name: 'ACME CORP', document: '12345678000195', address: 'Avenida 1' },
111
+ payer: { name: 'Joao da Silva', document: '12345678901', address: 'Rua 2' },
112
+ payment: {
113
+ documentNumber: 'DOC-001',
114
+ ourNumber: '12345678',
115
+ amount: 150.5,
116
+ dueDate: new Date('2025-02-10'),
117
+ barcode,
118
+ digitableLine,
119
+ pix: { payload: pix.payload },
120
+ },
121
+ bank: { code: '341', name: 'ITAU UNIBANCO SA' },
122
+ });
123
+ ```
124
+
125
+ ## 🏦 Bank Adapters (Itaú)
126
+
127
+ ```typescript
128
+ import { createItauAdapter } from '@linkiez/boleto-sdk';
129
+
130
+ const adapter = createItauAdapter();
131
+
132
+ adapter.assertSupportedWallet('109');
133
+
134
+ const ourNumber = adapter.buildOurNumber('12345678');
135
+ // { baseNumber: '12345678', checkDigit: 2, formatted: '123456782' }
136
+ ```
137
+
138
+ For complete examples, see [Adapters Guide](doc/ADAPTERS.md).
139
+
140
+ ## 📚 Documentation
141
+
142
+ ### Core
143
+
144
+ - [API Reference](doc/API-REFERENCE.md)
145
+ - [CNAB240 Guide](doc/CNAB240_GUIDE.md)
146
+ - [CNAB400 Usage Guide](doc/CNAB400-USAGE-GUIDE.md)
147
+ - [Boleto Generation Guide](doc/BOLETO-GENERATION.md)
148
+ - [Adapters Guide](doc/ADAPTERS.md)
149
+ - [Examples](doc/EXAMPLES.md)
150
+
151
+ ### Specs and Validation
152
+
153
+ - [CNAB240 FEBRABAN Spec](doc/CNAB240-FEBRABAN.md)
154
+ - [CNAB400 Positions Validation](doc/CNAB400_POSITIONS_VALIDATION.md)
155
+ - [Segment Positions Validation](doc/SEGMENT_POSITIONS_VALIDATION.md)
156
+ - [Business Rules](doc/BUSINESS_RULES.md)
157
+ - [Business Rules Sources](doc/BUSINESS_RULES_SOURCES.md)
158
+
159
+ ### Supporting Docs
160
+
161
+ - [Bank Differences](doc/BANK_DIFFERENCES.md)
162
+ - [FAQ](doc/FAQ.md)
163
+ - [Migration](doc/MIGRATION.md)
164
+ - [SonarQube](doc/SONARQUBE.md)
165
+ - [CNAB400 Bank Samples](doc)
166
+
167
+ ### Project
168
+
169
+ - [Architecture](ARCHITECTURE.md)
170
+ - [Testing](TESTING.md)
171
+ - [Contributing](CONTRIBUTING.md)
172
+ - [Roadmap](ROADMAP.md)
173
+
174
+ ## 🛠️ Development
175
+
176
+ See [CONTRIBUTING.md](CONTRIBUTING.md) and [TESTING.md](TESTING.md) for setup, workflows, and conventions.
177
+
178
+ ## 📜 License
179
+
180
+ APACHE. See [LICENSE](LICENSE).
181
+
182
+ ## 🔗 Links
183
+
184
+ - [NPM Package](https://www.npmjs.com/package/@linkiez/boleto-sdk)
185
+ - [Report Issues](https://github.com/linkiez/BoletoSDK/issues)
@@ -0,0 +1,9 @@
1
+ export interface IBankAdapter<TWalletConfig = unknown, TRemittanceDetail = unknown, TReturnDetail = unknown, TCnab240Detail = unknown> {
2
+ isSupportedWallet(walletCode: string): boolean;
3
+ assertSupportedWallet(walletCode: string): void;
4
+ getWalletConfig(walletCode: string): TWalletConfig | undefined;
5
+ buildRemittanceDetailsFromContent(content: string): TRemittanceDetail[];
6
+ buildReturnDetailsFromContent(content: string): TReturnDetail[];
7
+ buildCnab240DetailsFromContent(content: string): TCnab240Detail[];
8
+ }
9
+ //# sourceMappingURL=IBankAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IBankAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/IBankAdapter.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,YAAY,CAC3B,aAAa,GAAG,OAAO,EACvB,iBAAiB,GAAG,OAAO,EAC3B,aAAa,GAAG,OAAO,EACvB,cAAc,GAAG,OAAO;IAQxB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAQ/C,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAQhD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IAQ/D,iCAAiC,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAAC;IAQxE,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CAAC;IAQhE,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE,CAAC;CACnE"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IBankAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IBankAdapter.js","sourceRoot":"","sources":["../../src/adapters/IBankAdapter.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import type { BradescoCnab240Segment, BradescoCnab400RemittanceDetail, BradescoCnab400ReturnDetail, BradescoOccurrenceMapping, BradescoOurNumberResult, BradescoRemittanceFields, BradescoReturnFields, BradescoWalletConfig } from '../../types/adapters';
2
+ import type { Batch as Cnab240Batch, Cnab240File, DetailRecord as Cnab240DetailRecord } from '../../types/cnab240';
3
+ import type { IBankAdapter } from '../IBankAdapter';
4
+ export declare class BradescoAdapter implements IBankAdapter<BradescoWalletConfig, BradescoCnab400RemittanceDetail, BradescoCnab400ReturnDetail, BradescoCnab240Segment> {
5
+ private static normalizeCnab240Wallet;
6
+ private static extractDetailLines;
7
+ private buildCnab240Validation;
8
+ isSupportedWallet(walletCode: string): boolean;
9
+ assertSupportedWallet(walletCode: string): void;
10
+ getWalletConfig(walletCode: string): BradescoWalletConfig | undefined;
11
+ formatOurNumber(baseNumber: string): string;
12
+ buildOurNumber(baseNumber: string): BradescoOurNumberResult;
13
+ mapOccurrenceCode(occurrenceCode: string): BradescoOccurrenceMapping;
14
+ validateRemittanceFields(fields: BradescoRemittanceFields): import("../..").ValidationResult;
15
+ validateReturnFields(fields: BradescoReturnFields): import("../..").ValidationResult;
16
+ buildRemittanceDetail(line: string): BradescoCnab400RemittanceDetail;
17
+ buildReturnDetail(line: string): BradescoCnab400ReturnDetail;
18
+ buildRemittanceDetailsFromContent(content: string): BradescoCnab400RemittanceDetail[];
19
+ buildReturnDetailsFromContent(content: string): BradescoCnab400ReturnDetail[];
20
+ buildCnab240Detail(detail: Cnab240DetailRecord): BradescoCnab240Segment;
21
+ buildCnab240Details(details: Cnab240DetailRecord[]): BradescoCnab240Segment[];
22
+ buildCnab240DetailsFromBatch(batch: Cnab240Batch): BradescoCnab240Segment[];
23
+ buildCnab240DetailsFromFile(file: Cnab240File): BradescoCnab240Segment[];
24
+ buildCnab240DetailsFromContent(content: string): BradescoCnab240Segment[];
25
+ }
26
+ export declare function createBradescoAdapter(): BradescoAdapter;
27
+ //# sourceMappingURL=BradescoAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BradescoAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/bradesco/BradescoAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,+BAA+B,EAC/B,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,KAAK,IAAI,YAAY,EACrB,WAAW,EACX,YAAY,IAAI,mBAAmB,EACpC,MAAM,qBAAqB,CAAC;AAY7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAKpD,qBAAa,eAAgB,YAAW,YAAY,CAClD,oBAAoB,EACpB,+BAA+B,EAC/B,2BAA2B,EAC3B,sBAAsB,CACvB;IACC,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAarC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAWjC,OAAO,CAAC,sBAAsB;IAsBvB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAU9C,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAU/C,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAUrE,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAU3C,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,uBAAuB;IAU3D,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,yBAAyB;IAUpE,wBAAwB,CAAC,MAAM,EAAE,wBAAwB;IAUzD,oBAAoB,CAAC,MAAM,EAAE,oBAAoB;IAUjD,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,+BAA+B;IAmBpE,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,2BAA2B;IAuB5D,iCAAiC,CAAC,OAAO,EAAE,MAAM,GAAG,+BAA+B,EAAE;IAUrF,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,2BAA2B,EAAE;IAU7E,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,GAAG,sBAAsB;IAuBvE,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,sBAAsB,EAAE;IAU7E,4BAA4B,CAAC,KAAK,EAAE,YAAY,GAAG,sBAAsB,EAAE;IAU3E,2BAA2B,CAAC,IAAI,EAAE,WAAW,GAAG,sBAAsB,EAAE;IAUxE,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB,EAAE;CAIjF;AAOD,wBAAgB,qBAAqB,IAAI,eAAe,CAEvD"}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BradescoAdapter = void 0;
4
+ exports.createBradescoAdapter = createBradescoAdapter;
5
+ const cnab240_1 = require("../../parsers/cnab240");
6
+ const cnab400_1 = require("../../parsers/cnab400");
7
+ const BradescoFieldParser_1 = require("./BradescoFieldParser");
8
+ const BradescoOccurrenceMapper_1 = require("./BradescoOccurrenceMapper");
9
+ const BradescoOurNumberCalculator_1 = require("./BradescoOurNumberCalculator");
10
+ const BradescoValidator_1 = require("./BradescoValidator");
11
+ const BradescoWalletValidator_1 = require("./BradescoWalletValidator");
12
+ class BradescoAdapter {
13
+ static normalizeCnab240Wallet(walletNumber) {
14
+ if (!walletNumber) {
15
+ return undefined;
16
+ }
17
+ const normalized = walletNumber.trim();
18
+ if (normalized.length === 1 && /^\d$/.test(normalized)) {
19
+ return `0${normalized}`;
20
+ }
21
+ return normalized;
22
+ }
23
+ static extractDetailLines(content) {
24
+ if (!content || content.trim().length === 0) {
25
+ return [];
26
+ }
27
+ return content
28
+ .replaceAll('\r', '')
29
+ .split('\n')
30
+ .filter((line) => line.length > 0 && line.startsWith('1'));
31
+ }
32
+ buildCnab240Validation(walletNumber) {
33
+ const errors = [];
34
+ if (!walletNumber || !this.getWalletConfig(walletNumber)) {
35
+ errors.push(`Unsupported Bradesco wallet code: ${walletNumber ?? ''}`.trim());
36
+ }
37
+ return {
38
+ isValid: errors.length === 0,
39
+ errors,
40
+ };
41
+ }
42
+ isSupportedWallet(walletCode) {
43
+ return (0, BradescoWalletValidator_1.isValidBradescoWallet)(walletCode);
44
+ }
45
+ assertSupportedWallet(walletCode) {
46
+ (0, BradescoWalletValidator_1.assertValidBradescoWallet)(walletCode);
47
+ }
48
+ getWalletConfig(walletCode) {
49
+ return (0, BradescoWalletValidator_1.getBradescoWalletConfig)(walletCode);
50
+ }
51
+ formatOurNumber(baseNumber) {
52
+ return (0, BradescoOurNumberCalculator_1.formatBradescoOurNumber)(baseNumber);
53
+ }
54
+ buildOurNumber(baseNumber) {
55
+ return (0, BradescoOurNumberCalculator_1.buildBradescoOurNumber)(baseNumber);
56
+ }
57
+ mapOccurrenceCode(occurrenceCode) {
58
+ return (0, BradescoOccurrenceMapper_1.mapBradescoOccurrenceCode)(occurrenceCode);
59
+ }
60
+ validateRemittanceFields(fields) {
61
+ return (0, BradescoValidator_1.validateBradescoRemittanceFields)(fields);
62
+ }
63
+ validateReturnFields(fields) {
64
+ return (0, BradescoValidator_1.validateBradescoReturnFields)(fields);
65
+ }
66
+ buildRemittanceDetail(line) {
67
+ const detail = (0, cnab400_1.parseDetailRecord)(line);
68
+ const fields = (0, BradescoFieldParser_1.parseBradescoRemittanceFields)(line);
69
+ return {
70
+ movementType: 'remittance',
71
+ detail,
72
+ fields,
73
+ wallet: fields.walletNumber ? this.getWalletConfig(fields.walletNumber) : undefined,
74
+ validation: this.validateRemittanceFields(fields),
75
+ };
76
+ }
77
+ buildReturnDetail(line) {
78
+ const detail = (0, cnab400_1.parseReturnDetailRecord)(line);
79
+ const fields = (0, BradescoFieldParser_1.parseBradescoReturnFields)(line);
80
+ return {
81
+ movementType: 'return',
82
+ detail,
83
+ fields,
84
+ wallet: fields.walletNumber ? this.getWalletConfig(fields.walletNumber) : undefined,
85
+ occurrence: fields.occurrenceCode && (0, BradescoOccurrenceMapper_1.isValidBradescoOccurrenceCode)(fields.occurrenceCode)
86
+ ? this.mapOccurrenceCode(fields.occurrenceCode)
87
+ : undefined,
88
+ validation: this.validateReturnFields(fields),
89
+ };
90
+ }
91
+ buildRemittanceDetailsFromContent(content) {
92
+ return BradescoAdapter.extractDetailLines(content).map((line) => this.buildRemittanceDetail(line));
93
+ }
94
+ buildReturnDetailsFromContent(content) {
95
+ return BradescoAdapter.extractDetailLines(content).map((line) => this.buildReturnDetail(line));
96
+ }
97
+ buildCnab240Detail(detail) {
98
+ const walletNumber = BradescoAdapter.normalizeCnab240Wallet(detail.segmentP.portfolioCode);
99
+ const occurrenceCode = detail.segmentP.occurrenceCode;
100
+ return {
101
+ movementType: 'cnab240',
102
+ detail,
103
+ walletNumber,
104
+ wallet: walletNumber ? this.getWalletConfig(walletNumber) : undefined,
105
+ occurrenceCode,
106
+ occurrence: (0, BradescoOccurrenceMapper_1.isValidBradescoOccurrenceCode)(occurrenceCode)
107
+ ? this.mapOccurrenceCode(occurrenceCode)
108
+ : undefined,
109
+ validation: this.buildCnab240Validation(walletNumber),
110
+ };
111
+ }
112
+ buildCnab240Details(details) {
113
+ return details.map((detail) => this.buildCnab240Detail(detail));
114
+ }
115
+ buildCnab240DetailsFromBatch(batch) {
116
+ return this.buildCnab240Details(batch.details);
117
+ }
118
+ buildCnab240DetailsFromFile(file) {
119
+ return file.batches.flatMap((batch) => this.buildCnab240DetailsFromBatch(batch));
120
+ }
121
+ buildCnab240DetailsFromContent(content) {
122
+ const file = (0, cnab240_1.parseCnab240)(content);
123
+ return this.buildCnab240DetailsFromFile(file);
124
+ }
125
+ }
126
+ exports.BradescoAdapter = BradescoAdapter;
127
+ function createBradescoAdapter() {
128
+ return new BradescoAdapter();
129
+ }
130
+ //# sourceMappingURL=BradescoAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BradescoAdapter.js","sourceRoot":"","sources":["../../../src/adapters/bradesco/BradescoAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { BradescoRemittanceFields, BradescoReturnFields } from '../../types/adapters';
2
+ export declare function parseBradescoRemittanceFields(line: string): BradescoRemittanceFields;
3
+ export declare function parseBradescoReturnFields(line: string): BradescoReturnFields;
4
+ //# sourceMappingURL=BradescoFieldParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BradescoFieldParser.d.ts","sourceRoot":"","sources":["../../../src/adapters/bradesco/BradescoFieldParser.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAmB3F,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,CA8CpF;AASD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAgC5E"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseBradescoRemittanceFields = parseBradescoRemittanceFields;
4
+ exports.parseBradescoReturnFields = parseBradescoReturnFields;
5
+ const cnab400_1 = require("../../constants/cnab400");
6
+ const RECORD_POSITIONS_1 = require("../../constants/cnab400/RECORD_POSITIONS");
7
+ const parsers_1 = require("../../utils/parsers");
8
+ function extractField(line, start, end) {
9
+ return line.substring(start - 1, end);
10
+ }
11
+ function trimToUndefined(value) {
12
+ const trimmedValue = value.trim();
13
+ return trimmedValue || undefined;
14
+ }
15
+ function parseBradescoRemittanceFields(line) {
16
+ if (line.length !== cnab400_1.LINE_LENGTH) {
17
+ throw new Error(`Invalid Bradesco remittance detail line length: ${line.length}`);
18
+ }
19
+ const instructionCode = extractField(line, RECORD_POSITIONS_1.DETAIL_RECORD_REMESSA_POSITIONS.INSTRUCTION_CODE_1.start, RECORD_POSITIONS_1.DETAIL_RECORD_REMESSA_POSITIONS.INSTRUCTION_CODE_1.end);
20
+ const walletNumber = trimToUndefined(extractField(line, RECORD_POSITIONS_1.DETAIL_RECORD_REMESSA_POSITIONS.PORTFOLIO_CODE.start, RECORD_POSITIONS_1.DETAIL_RECORD_REMESSA_POSITIONS.PORTFOLIO_CODE.end));
21
+ const walletType = trimToUndefined(extractField(line, RECORD_POSITIONS_1.DETAIL_RECORD_REMESSA_POSITIONS.PORTFOLIO_TYPE.start, RECORD_POSITIONS_1.DETAIL_RECORD_REMESSA_POSITIONS.PORTFOLIO_TYPE.end));
22
+ const occurrenceCode = trimToUndefined(extractField(line, RECORD_POSITIONS_1.DETAIL_RECORD_REMESSA_POSITIONS.OCCURRENCE_CODE.start, RECORD_POSITIONS_1.DETAIL_RECORD_REMESSA_POSITIONS.OCCURRENCE_CODE.end));
23
+ const rawDaysCount = trimToUndefined(extractField(line, RECORD_POSITIONS_1.DETAIL_RECORD_REMESSA_POSITIONS.DAYS_COUNT.start, RECORD_POSITIONS_1.DETAIL_RECORD_REMESSA_POSITIONS.DAYS_COUNT.end));
24
+ return {
25
+ instructionCode,
26
+ walletNumber,
27
+ walletType,
28
+ occurrenceCode,
29
+ daysCount: rawDaysCount ? (0, parsers_1.parseNumber)(rawDaysCount) : undefined,
30
+ };
31
+ }
32
+ function parseBradescoReturnFields(line) {
33
+ if (line.length !== cnab400_1.LINE_LENGTH) {
34
+ throw new Error(`Invalid Bradesco return detail line length: ${line.length}`);
35
+ }
36
+ return {
37
+ walletNumber: trimToUndefined(extractField(line, 84, 86)),
38
+ walletType: trimToUndefined(extractField(line, RECORD_POSITIONS_1.DETAIL_RECORD_RETORNO_POSITIONS.PORTFOLIO_CODE.start, RECORD_POSITIONS_1.DETAIL_RECORD_RETORNO_POSITIONS.PORTFOLIO_CODE.end)),
39
+ occurrenceCode: trimToUndefined(extractField(line, RECORD_POSITIONS_1.DETAIL_RECORD_RETORNO_POSITIONS.OCCURRENCE_CODE.start, RECORD_POSITIONS_1.DETAIL_RECORD_RETORNO_POSITIONS.OCCURRENCE_CODE.end)),
40
+ ourNumber: trimToUndefined(extractField(line, RECORD_POSITIONS_1.DETAIL_RECORD_RETORNO_POSITIONS.OUR_NUMBER.start, RECORD_POSITIONS_1.DETAIL_RECORD_RETORNO_POSITIONS.OUR_NUMBER.end)),
41
+ ourNumberCheckDigit: trimToUndefined(extractField(line, 71, 71)),
42
+ confirmedOurNumber: trimToUndefined(extractField(line, 127, 134)),
43
+ confirmedOurNumberCheckDigit: trimToUndefined(extractField(line, 135, 135)),
44
+ };
45
+ }
46
+ //# sourceMappingURL=BradescoFieldParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BradescoFieldParser.js","sourceRoot":"","sources":["../../../src/adapters/bradesco/BradescoFieldParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { BradescoOccurrenceCode, BradescoOccurrenceMapping } from '../../types/adapters';
2
+ export declare const BRADESCO_OCCURRENCE_CODE_MAP: Record<BradescoOccurrenceCode, BradescoOccurrenceMapping>;
3
+ export declare function isValidBradescoOccurrenceCode(occurrenceCode: string): occurrenceCode is BradescoOccurrenceCode;
4
+ export declare function mapBradescoOccurrenceCode(occurrenceCode: string): BradescoOccurrenceMapping;
5
+ //# sourceMappingURL=BradescoOccurrenceMapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BradescoOccurrenceMapper.d.ts","sourceRoot":"","sources":["../../../src/adapters/bradesco/BradescoOccurrenceMapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,sBAAsB,CAAC;AAK9B,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAC/C,sBAAsB,EACtB,yBAAyB,CAgC1B,CAAC;AAQF,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,MAAM,GACrB,cAAc,IAAI,sBAAsB,CAE1C;AASD,wBAAgB,yBAAyB,CAAC,cAAc,EAAE,MAAM,GAAG,yBAAyB,CAM3F"}