@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.
- package/LICENSE +190 -190
- package/README.md +185 -168
- package/dist/adapters/IBankAdapter.d.ts +9 -0
- package/dist/adapters/IBankAdapter.d.ts.map +1 -0
- package/dist/adapters/IBankAdapter.js +3 -0
- package/dist/adapters/IBankAdapter.js.map +1 -0
- package/dist/adapters/bradesco/BradescoAdapter.d.ts +27 -0
- package/dist/adapters/bradesco/BradescoAdapter.d.ts.map +1 -0
- package/dist/adapters/bradesco/BradescoAdapter.js +130 -0
- package/dist/adapters/bradesco/BradescoAdapter.js.map +1 -0
- package/dist/adapters/bradesco/BradescoFieldParser.d.ts +4 -0
- package/dist/adapters/bradesco/BradescoFieldParser.d.ts.map +1 -0
- package/dist/adapters/bradesco/BradescoFieldParser.js +46 -0
- package/dist/adapters/bradesco/BradescoFieldParser.js.map +1 -0
- package/dist/adapters/bradesco/BradescoOccurrenceMapper.d.ts +5 -0
- package/dist/adapters/bradesco/BradescoOccurrenceMapper.d.ts.map +1 -0
- package/dist/adapters/bradesco/BradescoOccurrenceMapper.js +47 -0
- package/dist/adapters/bradesco/BradescoOccurrenceMapper.js.map +1 -0
- package/dist/adapters/bradesco/BradescoOurNumberCalculator.d.ts +5 -0
- package/dist/adapters/bradesco/BradescoOurNumberCalculator.d.ts.map +1 -0
- package/dist/adapters/bradesco/BradescoOurNumberCalculator.js +40 -0
- package/dist/adapters/bradesco/BradescoOurNumberCalculator.js.map +1 -0
- package/dist/adapters/bradesco/BradescoValidator.d.ts +7 -0
- package/dist/adapters/bradesco/BradescoValidator.d.ts.map +1 -0
- package/dist/adapters/bradesco/BradescoValidator.js +103 -0
- package/dist/adapters/bradesco/BradescoValidator.js.map +1 -0
- package/dist/adapters/bradesco/BradescoWalletValidator.d.ts +8 -0
- package/dist/adapters/bradesco/BradescoWalletValidator.d.ts.map +1 -0
- package/dist/adapters/bradesco/BradescoWalletValidator.js +55 -0
- package/dist/adapters/bradesco/BradescoWalletValidator.js.map +1 -0
- package/dist/adapters/bradesco/index.d.ts +7 -0
- package/dist/adapters/bradesco/index.d.ts.map +1 -0
- package/dist/adapters/bradesco/index.js +23 -0
- package/dist/adapters/bradesco/index.js.map +1 -0
- package/dist/adapters/index.d.ts +4 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +20 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/itau/ItauAdapter.d.ts +31 -0
- package/dist/adapters/itau/ItauAdapter.d.ts.map +1 -0
- package/dist/adapters/itau/ItauAdapter.js +158 -0
- package/dist/adapters/itau/ItauAdapter.js.map +1 -0
- package/dist/adapters/itau/ItauFieldParser.d.ts +4 -0
- package/dist/adapters/itau/ItauFieldParser.d.ts.map +1 -0
- package/dist/adapters/itau/ItauFieldParser.js +52 -0
- package/dist/adapters/itau/ItauFieldParser.js.map +1 -0
- package/dist/adapters/itau/ItauInstructionMapper.d.ts +5 -0
- package/dist/adapters/itau/ItauInstructionMapper.d.ts.map +1 -0
- package/dist/adapters/itau/ItauInstructionMapper.js +54 -0
- package/dist/adapters/itau/ItauInstructionMapper.js.map +1 -0
- package/dist/adapters/itau/ItauOccurrenceMapper.d.ts +5 -0
- package/dist/adapters/itau/ItauOccurrenceMapper.d.ts.map +1 -0
- package/dist/adapters/itau/ItauOccurrenceMapper.js +52 -0
- package/dist/adapters/itau/ItauOccurrenceMapper.js.map +1 -0
- package/dist/adapters/itau/ItauOurNumberCalculator.d.ts +5 -0
- package/dist/adapters/itau/ItauOurNumberCalculator.d.ts.map +1 -0
- package/dist/adapters/itau/ItauOurNumberCalculator.js +28 -0
- package/dist/adapters/itau/ItauOurNumberCalculator.js.map +1 -0
- package/dist/adapters/itau/ItauReturnMapper.d.ts +6 -0
- package/dist/adapters/itau/ItauReturnMapper.d.ts.map +1 -0
- package/dist/adapters/itau/ItauReturnMapper.js +71 -0
- package/dist/adapters/itau/ItauReturnMapper.js.map +1 -0
- package/dist/adapters/itau/ItauValidator.d.ts +7 -0
- package/dist/adapters/itau/ItauValidator.d.ts.map +1 -0
- package/dist/adapters/itau/ItauValidator.js +94 -0
- package/dist/adapters/itau/ItauValidator.js.map +1 -0
- package/dist/adapters/itau/ItauWalletValidator.d.ts +7 -0
- package/dist/adapters/itau/ItauWalletValidator.d.ts.map +1 -0
- package/dist/adapters/itau/ItauWalletValidator.js +57 -0
- package/dist/adapters/itau/ItauWalletValidator.js.map +1 -0
- package/dist/adapters/itau/index.d.ts +9 -0
- package/dist/adapters/itau/index.d.ts.map +1 -0
- package/dist/adapters/itau/index.js +25 -0
- package/dist/adapters/itau/index.js.map +1 -0
- package/dist/constants/bancos/ItauRejectionCodes.d.ts +2 -0
- package/dist/constants/bancos/ItauRejectionCodes.d.ts.map +1 -0
- package/dist/constants/bancos/ItauRejectionCodes.js +13 -0
- package/dist/constants/bancos/ItauRejectionCodes.js.map +1 -0
- package/dist/constants/bancos/index.d.ts +1 -0
- package/dist/constants/bancos/index.d.ts.map +1 -1
- package/dist/constants/bancos/index.js +1 -0
- package/dist/constants/bancos/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/templates/HtmlTemplateBuilder.js +182 -182
- package/dist/types/adapters/bradesco/index.d.ts +73 -0
- package/dist/types/adapters/bradesco/index.d.ts.map +1 -0
- package/dist/types/adapters/bradesco/index.js +3 -0
- package/dist/types/adapters/bradesco/index.js.map +1 -0
- package/dist/types/adapters/index.d.ts +3 -0
- package/dist/types/adapters/index.d.ts.map +1 -0
- package/dist/types/adapters/index.js +19 -0
- package/dist/types/adapters/index.js.map +1 -0
- package/dist/types/adapters/itau/index.d.ts +102 -0
- package/dist/types/adapters/itau/index.d.ts.map +1 -0
- package/dist/types/adapters/itau/index.js +3 -0
- package/dist/types/adapters/itau/index.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/utils/email/EmailTemplateGenerator.js +27 -27
- 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
|
-
[](https://www.npmjs.com/package/@linkiez/boleto-sdk)
|
|
6
|
-
[](https://www.npmjs.com/package/@linkiez/boleto-sdk)
|
|
6
|
+
[](https://github.com/linkiez/BoletoSDK/releases)
|
|
7
|
+
[](https://github.com/linkiez/BoletoSDK/actions)
|
|
8
|
+
[](https://codecov.io/gh/linkiez/BoletoSDK)
|
|
9
|
+
[](https://opensource.org/licenses/MIT)
|
|
10
|
+
[](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 @@
|
|
|
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"}
|