validation-br 2.0.0-next-10 → 2.0.0-next-11
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/dist/cjs/_helpers/expiration-factor.d.ts +39 -0
- package/dist/cjs/_helpers/expiration-factor.js +59 -0
- package/dist/cjs/_helpers/random.js +4 -1
- package/dist/cjs/_helpers/utils.d.ts +1 -1
- package/dist/cjs/_helpers/utils.js +2 -2
- package/dist/cjs/base.d.ts +5 -5
- package/dist/cjs/base.js +3 -4
- package/dist/cjs/boleto.d.ts +182 -0
- package/dist/cjs/boleto.js +349 -0
- package/dist/cjs/caepf.d.ts +93 -0
- package/dist/cjs/caepf.js +141 -0
- package/dist/cjs/carplate.d.ts +1 -1
- package/dist/cjs/carplate.js +1 -1
- package/dist/cjs/cep.d.ts +1 -1
- package/dist/cjs/cep.js +2 -2
- package/dist/cjs/certidao.js +0 -1
- package/dist/cjs/index.d.ts +6 -0
- package/dist/cjs/index.js +19 -1
- package/dist/cjs/pix-copy-paste.d.ts +5 -3
- package/dist/esm/_helpers/expiration-factor.d.ts +39 -0
- package/dist/esm/_helpers/expiration-factor.js +55 -0
- package/dist/esm/_helpers/random.js +4 -1
- package/dist/esm/_helpers/utils.d.ts +1 -1
- package/dist/esm/_helpers/utils.js +2 -2
- package/dist/esm/base.d.ts +5 -5
- package/dist/esm/base.js +3 -4
- package/dist/esm/boleto.d.ts +182 -0
- package/dist/esm/boleto.js +345 -0
- package/dist/esm/caepf.d.ts +93 -0
- package/dist/esm/caepf.js +137 -0
- package/dist/esm/carplate.d.ts +1 -1
- package/dist/esm/carplate.js +1 -1
- package/dist/esm/cep.d.ts +1 -1
- package/dist/esm/cep.js +2 -2
- package/dist/esm/certidao.js +0 -1
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/index.js +13 -1
- package/dist/esm/pix-copy-paste.d.ts +5 -3
- package/package.json +141 -138
- package/readme.md +272 -88
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ExpirationFactor
|
|
3
|
+
* Converte entre o fator de vencimento do boleto bancário e a data que ele representa
|
|
4
|
+
*
|
|
5
|
+
* @doc
|
|
6
|
+
* O fator de vencimento é a quantidade de dias corridos entre uma data-base e o
|
|
7
|
+
* vencimento do boleto, representado em 4 dígitos (0000 a 9999). "0000" indica
|
|
8
|
+
* que o boleto não tem vencimento definido.
|
|
9
|
+
*
|
|
10
|
+
* Esse intervalo de 4 dígitos, contado a partir de 07/10/1997, esgotou em
|
|
11
|
+
* 21/02/2025 e, a partir de 22/02/2025, a Febraban reiniciou a contagem em
|
|
12
|
+
* 1000, usando 29/05/2022 como nova data-base. Como o fator sozinho não indica
|
|
13
|
+
* de qual era ele é, usamos 6000 como corte: fatores menores indicam a era
|
|
14
|
+
* nova (válida até 31/10/2038) e fatores maiores ou iguais indicam a era
|
|
15
|
+
* antiga (válida até 21/02/2025, quando ela se esgotou).
|
|
16
|
+
*
|
|
17
|
+
* Nota para o futuro: quando a era nova se esgotar (por volta de 2038), a
|
|
18
|
+
* data-base usada abaixo deixa de ser válida e um novo corte precisará ser
|
|
19
|
+
* calculado.
|
|
20
|
+
*
|
|
21
|
+
* Fonte: http://portalabbc.org.br/images/content/manual%20operacional.pdf
|
|
22
|
+
*/
|
|
23
|
+
export declare class ExpirationFactor {
|
|
24
|
+
private static readonly oldEraBaseDate;
|
|
25
|
+
private static readonly newEraBaseDate;
|
|
26
|
+
private static readonly newEraStartDate;
|
|
27
|
+
private static readonly newEraThreshold;
|
|
28
|
+
/**
|
|
29
|
+
* Converte o fator de vencimento em data. "0000" representa um boleto sem
|
|
30
|
+
* vencimento definido.
|
|
31
|
+
*/
|
|
32
|
+
static toDate(factor: string): Date | null;
|
|
33
|
+
/**
|
|
34
|
+
* Converte uma data no fator de vencimento equivalente, escolhendo a era
|
|
35
|
+
* (ver acima) a partir da própria data: a era antiga só é usada para datas
|
|
36
|
+
* até 21/02/2025, quando ela se esgotou.
|
|
37
|
+
*/
|
|
38
|
+
static fromDate(date: Date): string;
|
|
39
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExpirationFactor = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* ExpirationFactor
|
|
6
|
+
* Converte entre o fator de vencimento do boleto bancário e a data que ele representa
|
|
7
|
+
*
|
|
8
|
+
* @doc
|
|
9
|
+
* O fator de vencimento é a quantidade de dias corridos entre uma data-base e o
|
|
10
|
+
* vencimento do boleto, representado em 4 dígitos (0000 a 9999). "0000" indica
|
|
11
|
+
* que o boleto não tem vencimento definido.
|
|
12
|
+
*
|
|
13
|
+
* Esse intervalo de 4 dígitos, contado a partir de 07/10/1997, esgotou em
|
|
14
|
+
* 21/02/2025 e, a partir de 22/02/2025, a Febraban reiniciou a contagem em
|
|
15
|
+
* 1000, usando 29/05/2022 como nova data-base. Como o fator sozinho não indica
|
|
16
|
+
* de qual era ele é, usamos 6000 como corte: fatores menores indicam a era
|
|
17
|
+
* nova (válida até 31/10/2038) e fatores maiores ou iguais indicam a era
|
|
18
|
+
* antiga (válida até 21/02/2025, quando ela se esgotou).
|
|
19
|
+
*
|
|
20
|
+
* Nota para o futuro: quando a era nova se esgotar (por volta de 2038), a
|
|
21
|
+
* data-base usada abaixo deixa de ser válida e um novo corte precisará ser
|
|
22
|
+
* calculado.
|
|
23
|
+
*
|
|
24
|
+
* Fonte: http://portalabbc.org.br/images/content/manual%20operacional.pdf
|
|
25
|
+
*/
|
|
26
|
+
class ExpirationFactor {
|
|
27
|
+
/**
|
|
28
|
+
* Converte o fator de vencimento em data. "0000" representa um boleto sem
|
|
29
|
+
* vencimento definido.
|
|
30
|
+
*/
|
|
31
|
+
static toDate(factor) {
|
|
32
|
+
if (factor === '0000')
|
|
33
|
+
return null;
|
|
34
|
+
const baseDate = factor < ExpirationFactor.newEraThreshold
|
|
35
|
+
? ExpirationFactor.newEraBaseDate
|
|
36
|
+
: ExpirationFactor.oldEraBaseDate;
|
|
37
|
+
const msByDay = 1000 * 60 * 60 * 24;
|
|
38
|
+
const baseDays = baseDate.getTime() / msByDay;
|
|
39
|
+
return new Date((+factor + baseDays) * msByDay);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Converte uma data no fator de vencimento equivalente, escolhendo a era
|
|
43
|
+
* (ver acima) a partir da própria data: a era antiga só é usada para datas
|
|
44
|
+
* até 21/02/2025, quando ela se esgotou.
|
|
45
|
+
*/
|
|
46
|
+
static fromDate(date) {
|
|
47
|
+
const baseDate = date < ExpirationFactor.newEraStartDate
|
|
48
|
+
? ExpirationFactor.oldEraBaseDate
|
|
49
|
+
: ExpirationFactor.newEraBaseDate;
|
|
50
|
+
const msByDay = 1000 * 60 * 60 * 24;
|
|
51
|
+
const days = Math.round(date.getTime() / msByDay - baseDate.getTime() / msByDay);
|
|
52
|
+
return String(days).padStart(4, '0').slice(-4);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.ExpirationFactor = ExpirationFactor;
|
|
56
|
+
ExpirationFactor.oldEraBaseDate = new Date('1997-10-07');
|
|
57
|
+
ExpirationFactor.newEraBaseDate = new Date('2022-05-29');
|
|
58
|
+
ExpirationFactor.newEraStartDate = new Date('2025-02-22');
|
|
59
|
+
ExpirationFactor.newEraThreshold = '6000';
|
|
@@ -41,7 +41,10 @@ class Random {
|
|
|
41
41
|
static number(length, forceLength = false, isAlpha = false) {
|
|
42
42
|
let value;
|
|
43
43
|
if (isAlpha)
|
|
44
|
-
|
|
44
|
+
// Math.floor (não Math.round) é essencial aqui: Math.random() nunca atinge 1, mas
|
|
45
|
+
// arredondar para cima pode levar o valor a 36 ** length exatamente, que em base 36
|
|
46
|
+
// vira '1' seguido de `length` zeros — um caractere a mais do que o esperado.
|
|
47
|
+
value = Math.floor(Math.random() * 36 ** length)
|
|
45
48
|
.toString(36)
|
|
46
49
|
.toLocaleUpperCase();
|
|
47
50
|
else
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @param {Integer} sum Soma
|
|
7
7
|
* @returns {Integer}
|
|
8
8
|
*/
|
|
9
|
-
export declare function sumToDV(sum: number): number;
|
|
9
|
+
export declare function sumToDV(sum: number, restException?: 0 | 1): number;
|
|
10
10
|
/**
|
|
11
11
|
* Checa se o número repassado possui todos os digitos iguais
|
|
12
12
|
*
|
|
@@ -15,8 +15,8 @@ const ValidationBRError_1 = require("../_exceptions/ValidationBRError");
|
|
|
15
15
|
* @param {Integer} sum Soma
|
|
16
16
|
* @returns {Integer}
|
|
17
17
|
*/
|
|
18
|
-
function sumToDV(sum) {
|
|
19
|
-
return sum % 11 < 2 ?
|
|
18
|
+
function sumToDV(sum, restException = 0) {
|
|
19
|
+
return sum % 11 < 2 ? restException : 11 - (sum % 11);
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
22
|
* Checa se o número repassado possui todos os digitos iguais
|
package/dist/cjs/base.d.ts
CHANGED
|
@@ -5,17 +5,17 @@ export declare abstract class Base {
|
|
|
5
5
|
*
|
|
6
6
|
*/
|
|
7
7
|
protected abstract _mask: string | null;
|
|
8
|
-
constructor(_value: string
|
|
8
|
+
constructor(_value: string);
|
|
9
9
|
get value(): string;
|
|
10
10
|
toString(): string;
|
|
11
11
|
/**
|
|
12
12
|
* Deve remover apenas pontos e traços.
|
|
13
13
|
*/
|
|
14
|
-
protected abstract normalize(options?:
|
|
14
|
+
protected abstract normalize(options?: unknown): void;
|
|
15
15
|
/**
|
|
16
16
|
* Deve aplicar as regras de validação do dígito verificador do documento
|
|
17
17
|
*/
|
|
18
|
-
protected abstract validate(options?:
|
|
18
|
+
protected abstract validate(options?: unknown): boolean;
|
|
19
19
|
/**
|
|
20
20
|
* Deve devolver o número com a máscara
|
|
21
21
|
*/
|
|
@@ -25,9 +25,9 @@ export declare abstract class Base {
|
|
|
25
25
|
* Calcula o dígito verificador de um número SEM o dígito incluído
|
|
26
26
|
*
|
|
27
27
|
*/
|
|
28
|
-
static checksum(
|
|
28
|
+
static checksum(_value: string): string | null;
|
|
29
29
|
/**
|
|
30
30
|
* Deve gerar um número fake no padrão
|
|
31
31
|
*/
|
|
32
|
-
static fake(
|
|
32
|
+
static fake(_options?: unknown): unknown;
|
|
33
33
|
}
|
package/dist/cjs/base.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Base = void 0;
|
|
4
4
|
const mask_1 = require("./_helpers/mask");
|
|
5
5
|
class Base {
|
|
6
|
-
constructor(_value
|
|
6
|
+
constructor(_value) {
|
|
7
7
|
this._value = _value;
|
|
8
8
|
}
|
|
9
9
|
get value() {
|
|
@@ -35,15 +35,14 @@ class Base {
|
|
|
35
35
|
* Calcula o dígito verificador de um número SEM o dígito incluído
|
|
36
36
|
*
|
|
37
37
|
*/
|
|
38
|
-
static checksum(
|
|
38
|
+
static checksum(_value) {
|
|
39
39
|
throw new Error('Should implement on child');
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
42
|
* Deve gerar um número fake no padrão
|
|
43
43
|
*/
|
|
44
|
-
static fake(
|
|
44
|
+
static fake(_options) {
|
|
45
45
|
throw new Error('Should implement on child');
|
|
46
|
-
// Base.fakeFn(options)
|
|
47
46
|
}
|
|
48
47
|
}
|
|
49
48
|
exports.Base = Base;
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boleto
|
|
3
|
+
* Calcula, converte e mascara boletos bancários (linha digitável e código de barras)
|
|
4
|
+
*
|
|
5
|
+
* @doc
|
|
6
|
+
* O boleto bancário possui duas representações: o código de barras, com 44 dígitos,
|
|
7
|
+
* e a linha digitável, com 47 dígitos, que reorganiza o código de barras em 5 campos,
|
|
8
|
+
* 3 deles com um dígito verificador próprio (Módulo 10).
|
|
9
|
+
*
|
|
10
|
+
* Exemplo usado nos cálculos abaixo:
|
|
11
|
+
* Banco 001, moeda 9, fator de vencimento 9636, valor R$ 1.234,00 e campo livre
|
|
12
|
+
* "1234567890123456789012345".
|
|
13
|
+
*
|
|
14
|
+
* 1) Partes do código de barras (44 dígitos)
|
|
15
|
+
* _____ ________ ______ ________________ ____________ ___________________________
|
|
16
|
+
* | Bco | Moeda | DV | Fator vencto. | Valor | Campo livre |
|
|
17
|
+
* | 001 | 9 | 1 | 9636 | 0000123400 | 1234567890123456789012345 |
|
|
18
|
+
* |_____|________|______|________________|_____________|___________________________|
|
|
19
|
+
*
|
|
20
|
+
* - Banco (3): código do banco emissor.
|
|
21
|
+
* - Moeda (1): sempre "9" (Real).
|
|
22
|
+
* - DV geral (1): dígito verificador Módulo 11, calculado no passo 2 abaixo.
|
|
23
|
+
* - Fator de vencimento (4): quantidade de dias corridos desde 07/10/1997. "0000" quando
|
|
24
|
+
* o boleto não tem vencimento definido.
|
|
25
|
+
* - Valor (10): valor do boleto em centavos.
|
|
26
|
+
* - Campo livre (25): definido livremente por cada banco (agência, conta, nosso número
|
|
27
|
+
* etc.), sem um padrão único entre eles. Por isso este validador não tenta decompor
|
|
28
|
+
* esse trecho, apenas o mantém disponível como está.
|
|
29
|
+
*
|
|
30
|
+
* 2) Cálculo do DV geral (Módulo 11)
|
|
31
|
+
*
|
|
32
|
+
* - Soma-se o produto dos 43 dígitos do código de barras SEM o DV geral (banco + moeda
|
|
33
|
+
* + fator de vencimento + valor + campo livre) por pesos de 2 a 9, cíclicos, aplicados
|
|
34
|
+
* da direita para a esquerda.
|
|
35
|
+
*
|
|
36
|
+
* 0 0 1 9 9 6 3 6 0 0 0 0 1 2 3 4 0 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
|
37
|
+
* x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
|
|
38
|
+
* 4 3 2 9 8 7 6 5 4 3 2 9 8 7 6 5 4 3 2 9 8 7 6 5 4 3 2 9 8 7 6 5 4 3 2 9 8 7 6 5 4 3 2
|
|
39
|
+
*
|
|
40
|
+
* Soma = 813
|
|
41
|
+
*
|
|
42
|
+
* - O somatório encontrado é dividido por 11. O DV geral é 11 subtraído do resto da divisão.
|
|
43
|
+
* 813 / 11 tem resto 10. 11 - 10 = 1. DV geral é 1.
|
|
44
|
+
* Obs.: Caso o cálculo do DV retorne 0, 10 ou 11, o resultado será 1.
|
|
45
|
+
*
|
|
46
|
+
* 3) Partes da linha digitável (47 dígitos), a partir do mesmo exemplo
|
|
47
|
+
* ____________ _____________ _____________ _ ______________
|
|
48
|
+
* | Campo 1 | Campo 2 | Campo 3 |4| Campo 5 |
|
|
49
|
+
* | 00191.23454| 67890.123457| 67890.123457|1|96360000123400|
|
|
50
|
+
* |____________|_____________|_____________|_|______________|
|
|
51
|
+
*
|
|
52
|
+
* - Campo 1 (10): banco (3) + moeda (1) + 5 primeiros dígitos do campo livre (5) + DV1
|
|
53
|
+
* - Campo 2 (11): dígitos 6 a 15 do campo livre (10) + DV2
|
|
54
|
+
* - Campo 3 (11): dígitos 16 a 25 do campo livre (10) + DV3
|
|
55
|
+
* - Campo 4 (1): DV geral, o mesmo calculado no passo 2
|
|
56
|
+
* - Campo 5 (14): fator de vencimento (4) + valor (10)
|
|
57
|
+
*
|
|
58
|
+
* 4) Cálculo do DV de cada campo da linha digitável (Módulo 10)
|
|
59
|
+
*
|
|
60
|
+
* - Soma-se o produto dos dígitos do campo (sem o seu DV) por pesos alternados 2 e 1,
|
|
61
|
+
* da direita para a esquerda. Quando o produto é maior que 9, somam-se os dois
|
|
62
|
+
* algarismos do resultado (ex.: 5 x 2 = 10, que vira 1 + 0 = 1).
|
|
63
|
+
*
|
|
64
|
+
* Campo 1 (001912345):
|
|
65
|
+
*
|
|
66
|
+
* 0 0 1 9 1 2 3 4 5
|
|
67
|
+
* x x x x x x x x x
|
|
68
|
+
* 2 1 2 1 2 1 2 1 2
|
|
69
|
+
* = 0 +0 +2 +9 +2 +2 +6 +4 +1 = 26
|
|
70
|
+
*
|
|
71
|
+
* - O somatório encontrado é dividido por 10. O DV é 10 menos o resto da divisão.
|
|
72
|
+
* 26 / 10 tem resto 6. 10 - 6 = 4. DV1 é 4.
|
|
73
|
+
* Obs.: Caso o resto seja 0, o DV será 0.
|
|
74
|
+
*
|
|
75
|
+
* - O mesmo cálculo se aplica aos campos 2 e 3, usando os 10 dígitos de cada um.
|
|
76
|
+
*
|
|
77
|
+
* Fonte: Febraban - Layout do código de barras de cobrança
|
|
78
|
+
*
|
|
79
|
+
* @param {String} value Linha digitável (47) ou código de barras (44)
|
|
80
|
+
* @returns {Boolean}
|
|
81
|
+
*/
|
|
82
|
+
import { Base } from './base';
|
|
83
|
+
export declare class Boleto extends Base {
|
|
84
|
+
protected _value: string;
|
|
85
|
+
protected _mask: string;
|
|
86
|
+
private static readonly generalChecksumWeights;
|
|
87
|
+
private _bank;
|
|
88
|
+
private _generalChecksum;
|
|
89
|
+
private _expirationFactor;
|
|
90
|
+
private _amount;
|
|
91
|
+
private _freeField;
|
|
92
|
+
constructor(_value: string);
|
|
93
|
+
/**
|
|
94
|
+
* Cria um Boleto a partir de um código de barras (44 dígitos).
|
|
95
|
+
* Equivalente a chamar o construtor diretamente, mas deixa a intenção explícita.
|
|
96
|
+
*/
|
|
97
|
+
static fromBarcode(barcode: string): Boleto;
|
|
98
|
+
/**
|
|
99
|
+
* Código do banco emissor
|
|
100
|
+
*/
|
|
101
|
+
get bank(): string;
|
|
102
|
+
/**
|
|
103
|
+
* Valor do boleto, em reais
|
|
104
|
+
*/
|
|
105
|
+
get amount(): number;
|
|
106
|
+
/**
|
|
107
|
+
* Data de vencimento, ou null se o boleto não tiver vencimento definido
|
|
108
|
+
*/
|
|
109
|
+
get expiresAt(): Date | null;
|
|
110
|
+
/**
|
|
111
|
+
* Campo livre (25 dígitos), definido livremente por cada banco.
|
|
112
|
+
* Não é decomposto por este validador por não seguir um padrão único.
|
|
113
|
+
*/
|
|
114
|
+
get freeField(): string;
|
|
115
|
+
protected normalize(): void;
|
|
116
|
+
/**
|
|
117
|
+
* validate()
|
|
118
|
+
* Identifica se o valor é uma linha digitável (47) ou um código de barras (44)
|
|
119
|
+
* e delega para a validação específica de cada formato.
|
|
120
|
+
*/
|
|
121
|
+
protected validate(): boolean;
|
|
122
|
+
/**
|
|
123
|
+
* Valida um código de barras (44 dígitos): recalcula o DV geral (Módulo 11)
|
|
124
|
+
* sobre os outros 43 dígitos e compara com o DV informado.
|
|
125
|
+
*/
|
|
126
|
+
private validateBarcode;
|
|
127
|
+
/**
|
|
128
|
+
* Valida uma linha digitável (47 dígitos): recalcula o DV (Módulo 10) de cada
|
|
129
|
+
* um dos 3 campos e, a partir deles, o DV geral (Módulo 11), comparando ambos
|
|
130
|
+
* com os dígitos informados.
|
|
131
|
+
*/
|
|
132
|
+
private validateLinhaDigitavel;
|
|
133
|
+
/**
|
|
134
|
+
* Preenche os campos comuns a partir do valor já validado, convertendo para
|
|
135
|
+
* o código de barras quando o valor recebido for uma linha digitável.
|
|
136
|
+
*/
|
|
137
|
+
private parse;
|
|
138
|
+
/**
|
|
139
|
+
* Devolve sempre o código de barras (44 dígitos), independentemente do
|
|
140
|
+
* formato recebido no construtor.
|
|
141
|
+
*/
|
|
142
|
+
toBarcode(): string;
|
|
143
|
+
/**
|
|
144
|
+
* Devolve sempre a linha digitável (47 dígitos, sem máscara), independentemente
|
|
145
|
+
* do formato recebido no construtor.
|
|
146
|
+
*/
|
|
147
|
+
toString(): string;
|
|
148
|
+
/**
|
|
149
|
+
* Devolve a linha digitável mascarada, no formato
|
|
150
|
+
* 00000.00000 00000.000000 00000.000000 0 00000000000000
|
|
151
|
+
*/
|
|
152
|
+
mask(): string;
|
|
153
|
+
/**
|
|
154
|
+
* checksum()
|
|
155
|
+
* Calcula o DV geral (Módulo 11) a partir dos 43 dígitos do código de
|
|
156
|
+
* barras SEM o DV geral (banco + moeda + fator de vencimento + valor + campo livre)
|
|
157
|
+
*/
|
|
158
|
+
static checksum(value: string): string;
|
|
159
|
+
/**
|
|
160
|
+
* Gera um boleto fake válido
|
|
161
|
+
*/
|
|
162
|
+
static fake(options?: Partial<FakeBoletoOptions>): Boleto;
|
|
163
|
+
/**
|
|
164
|
+
* Converte uma linha digitável (47) no código de barras (44) equivalente.
|
|
165
|
+
*/
|
|
166
|
+
private static linhaDigitavelToBarcode;
|
|
167
|
+
/**
|
|
168
|
+
* Converte um código de barras (44) na linha digitável (47) equivalente,
|
|
169
|
+
* calculando o DV (Módulo 10) de cada um dos 3 campos.
|
|
170
|
+
*/
|
|
171
|
+
private static barcodeToLinhaDigitavel;
|
|
172
|
+
/**
|
|
173
|
+
* Módulo 10: usado no DV de cada campo da linha digitável.
|
|
174
|
+
*/
|
|
175
|
+
private static calculateModulo10;
|
|
176
|
+
}
|
|
177
|
+
interface FakeBoletoOptions {
|
|
178
|
+
bank: string;
|
|
179
|
+
amount: number;
|
|
180
|
+
expiresAt: Date;
|
|
181
|
+
}
|
|
182
|
+
export {};
|