boleto-utils-ts
Version:
Biblioteca com funções úteis para a validação de todos os tipos de boleto
523 lines (522 loc) • 20.6 kB
JavaScript
;
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/boleto-utils.ts
var boleto_utils_exports = {};
__export(boleto_utils_exports, {
TipoBoleto: () => TipoBoleto,
TipoCodigo: () => TipoCodigo,
calculaDVCodBarras: () => calculaDVCodBarras,
calculaMod10: () => calculaMod10,
calculaMod11: () => calculaMod11,
codBarras2LinhaDigitavel: () => codBarras2LinhaDigitavel,
digitosVerificadores: () => digitosVerificadores,
geraCodBarras: () => geraCodBarras,
identificarData: () => identificarData,
identificarDataComNovoFator2025: () => identificarDataComNovoFator2025,
identificarReferencia: () => identificarReferencia,
identificarTipoBoleto: () => identificarTipoBoleto,
identificarTipoCodigo: () => identificarTipoCodigo,
identificarValor: () => identificarValor,
identificarValorCodBarrasArrecadacao: () => identificarValorCodBarrasArrecadacao,
linhaDigitavel2CodBarras: () => linhaDigitavel2CodBarras,
obtemFatorData: () => obtemFatorData,
validarBoleto: () => validarBoleto,
validarCodigoComDV: () => validarCodigoComDV
});
module.exports = __toCommonJS(boleto_utils_exports);
var moment = __toESM(require("moment-timezone"));
var TipoCodigo = /* @__PURE__ */ ((TipoCodigo2) => {
TipoCodigo2["CODIGO_DE_BARRAS"] = "CODIGO_DE_BARRAS";
TipoCodigo2["LINHA_DIGITAVEL"] = "LINHA_DIGITAVEL";
TipoCodigo2["TAMANHO_INCORRETO"] = "TAMANHO_INCORRETO";
return TipoCodigo2;
})(TipoCodigo || {});
var identificarTipoCodigo = (codigo) => {
if (typeof codigo !== "string")
throw new TypeError("Insira uma string v\xE1lida!");
codigo = codigo.replace(/[^0-9]/g, "");
if (codigo.length == 44) {
return "CODIGO_DE_BARRAS" /* CODIGO_DE_BARRAS */;
} else if (codigo.length == 46 || codigo.length == 47 || codigo.length == 48) {
return "LINHA_DIGITAVEL" /* LINHA_DIGITAVEL */;
} else {
return "TAMANHO_INCORRETO" /* TAMANHO_INCORRETO */;
}
};
var TipoBoleto = /* @__PURE__ */ ((TipoBoleto2) => {
TipoBoleto2["BANCO"] = "BANCO";
TipoBoleto2["ARRECADACAO_PREFEITURA"] = "ARRECADACAO_PREFEITURA";
TipoBoleto2["ARRECADACAO_ORGAOS_GOVERNAMENTAIS"] = "ARRECADACAO_ORGAOS_GOVERNAMENTAIS";
TipoBoleto2["ARRECADACAO_TAXAS_DE_TRANSITO"] = "ARRECADACAO_TAXAS_DE_TRANSITO";
TipoBoleto2["CONVENIO_SANEAMENTO"] = "CONVENIO_SANEAMENTO";
TipoBoleto2["CONVENIO_ENERGIA_ELETRICA_E_GAS"] = "CONVENIO_ENERGIA_ELETRICA_E_GAS";
TipoBoleto2["CONVENIO_TELECOMUNICACOES"] = "CONVENIO_TELECOMUNICACOES";
TipoBoleto2["OUTROS"] = "OUTROS";
TipoBoleto2["CARTAO_DE_CREDITO"] = "CARTAO_DE_CREDITO";
return TipoBoleto2;
})(TipoBoleto || {});
var identificarTipoBoleto = (codigo) => {
codigo = codigo.replace(/[^0-9]/g, "");
if (typeof codigo !== "string") {
throw new TypeError("Insira uma string v\xE1lida!");
}
if (codigo.substr(-14) == "00000000000000" || codigo.substr(5, 14) == "00000000000000") {
return "CARTAO_DE_CREDITO" /* CARTAO_DE_CREDITO */;
} else if (codigo.substr(0, 1) == "8") {
if (codigo.substr(1, 1) == "1") {
return "ARRECADACAO_PREFEITURA" /* ARRECADACAO_PREFEITURA */;
} else if (codigo.substr(1, 1) == "2") {
return "CONVENIO_SANEAMENTO" /* CONVENIO_SANEAMENTO */;
} else if (codigo.substr(1, 1) == "3") {
return "CONVENIO_ENERGIA_ELETRICA_E_GAS" /* CONVENIO_ENERGIA_ELETRICA_E_GAS */;
} else if (codigo.substr(1, 1) == "4") {
return "CONVENIO_TELECOMUNICACOES" /* CONVENIO_TELECOMUNICACOES */;
} else if (codigo.substr(1, 1) == "5") {
return "ARRECADACAO_ORGAOS_GOVERNAMENTAIS" /* ARRECADACAO_ORGAOS_GOVERNAMENTAIS */;
} else if (codigo.substr(1, 1) == "6" || codigo.substr(1, 1) == "9") {
return "OUTROS" /* OUTROS */;
} else if (codigo.substr(1, 1) == "7") {
return "ARRECADACAO_TAXAS_DE_TRANSITO" /* ARRECADACAO_TAXAS_DE_TRANSITO */;
}
} else {
return "BANCO" /* BANCO */;
}
};
var identificarReferencia = (codigo) => {
codigo = codigo.replace(/[^0-9]/g, "");
const referencia = codigo.substr(2, 1);
if (typeof codigo !== "string")
throw new TypeError("Insira uma string v\xE1lida!");
switch (referencia) {
case "6":
return {
mod: 10,
efetivo: true
};
break;
case "7":
return {
mod: 10,
efetivo: false
};
break;
case "8":
return {
mod: 11,
efetivo: true
};
break;
case "9":
return {
mod: 11,
efetivo: false
};
break;
default:
throw new TypeError("Referecia n\xE3o encontrada!");
break;
}
};
var obtemFatorData = ({ codigo, tipoCodigo }) => {
const codigoLimpo = codigo.replace(/[^0-9]/g, "");
const tipoBoleto = identificarTipoBoleto(codigoLimpo);
let fatorData = "";
if (tipoCodigo === "CODIGO_DE_BARRAS" /* CODIGO_DE_BARRAS */) {
if (tipoBoleto == "BANCO" /* BANCO */ || tipoBoleto == "CARTAO_DE_CREDITO" /* CARTAO_DE_CREDITO */) {
fatorData = codigoLimpo.substr(5, 4);
} else {
fatorData = "0";
}
} else if (tipoCodigo === "LINHA_DIGITAVEL" /* LINHA_DIGITAVEL */) {
if (tipoBoleto == "BANCO" /* BANCO */ || tipoBoleto == "CARTAO_DE_CREDITO" /* CARTAO_DE_CREDITO */) {
fatorData = codigoLimpo.substr(33, 4);
} else {
fatorData = "0";
}
}
return fatorData;
};
var identificarData = (codigo, tipoCodigo) => {
const fatorData = obtemFatorData({ codigo, tipoCodigo });
const dataBoleto = moment.tz("1997-10-07 20:54:59.000Z", "UTC");
dataBoleto.add(Number(fatorData), "days");
return dataBoleto.toDate();
};
var identificarDataComNovoFator2025 = (codigo, tipoCodigo) => {
const fatorData = obtemFatorData({ codigo, tipoCodigo });
const dataBoleto = moment.tz("2025-02-22 20:54:59.000Z", "UTC");
dataBoleto.add(Number(fatorData) - 1e3, "days");
return dataBoleto.toDate();
};
var identificarValorCodBarrasArrecadacao = (codigo, tipoCodigo) => {
codigo = codigo.replace(/[^0-9]/g, "");
const isValorEfetivo = identificarReferencia(codigo).efetivo;
let valorBoleto = "";
let valorFinal;
if (isValorEfetivo) {
if (tipoCodigo == "LINHA_DIGITAVEL") {
valorBoleto = codigo.substr(4, 14);
const valorBoletoArr = codigo.split("");
valorBoletoArr.splice(11, 1);
valorBoleto = valorBoletoArr.join("");
valorBoleto = valorBoleto.substr(4, 11);
} else if (tipoCodigo == "CODIGO_DE_BARRAS") {
valorBoleto = codigo.substr(4, 11);
}
valorFinal = valorBoleto.substr(0, 9) + "." + valorBoleto.substr(9, 2);
let char = valorFinal.substr(1, 1);
while (char === "0") {
valorFinal = substringReplace(valorFinal, "", 0, 1);
char = valorFinal.substr(1, 1);
}
} else {
valorFinal = 0;
}
return valorFinal;
};
var identificarValor = (codigo, tipoCodigo) => {
const tipoBoleto = identificarTipoBoleto(codigo);
let valorBoleto = "";
let valorFinal = "";
if (tipoCodigo == "CODIGO_DE_BARRAS" /* CODIGO_DE_BARRAS */) {
if (tipoBoleto == "BANCO" /* BANCO */ || tipoBoleto == "CARTAO_DE_CREDITO" /* CARTAO_DE_CREDITO */) {
valorBoleto = codigo.substr(9, 10);
valorFinal = valorBoleto.substr(0, 8) + "." + valorBoleto.substr(8, 2);
let char = valorFinal.substr(1, 1);
while (char === "0") {
valorFinal = substringReplace(valorFinal, "", 0, 1);
char = valorFinal.substr(1, 1);
}
} else {
valorFinal = identificarValorCodBarrasArrecadacao(
codigo,
"CODIGO_DE_BARRAS" /* CODIGO_DE_BARRAS */
).toString();
}
} else if (tipoCodigo == "LINHA_DIGITAVEL" /* LINHA_DIGITAVEL */) {
if (tipoBoleto == "BANCO" /* BANCO */ || tipoBoleto == "CARTAO_DE_CREDITO" /* CARTAO_DE_CREDITO */) {
valorBoleto = codigo.substr(37);
valorFinal = valorBoleto.substr(0, 8) + "." + valorBoleto.substr(8, 2);
let char = valorFinal.substr(1, 1);
while (char === "0") {
valorFinal = substringReplace(valorFinal, "", 0, 1);
char = valorFinal.substr(1, 1);
}
} else {
valorFinal = identificarValorCodBarrasArrecadacao(
codigo,
"LINHA_DIGITAVEL" /* LINHA_DIGITAVEL */
).toString();
}
}
return parseFloat(valorFinal);
};
var digitosVerificadores = (codigo, mod) => {
codigo = codigo.replace(/[^0-9]/g, "");
switch (mod) {
case 10:
return (codigo + calculaMod10(codigo)).toString();
break;
case 11:
return (codigo + calculaMod11(codigo)).toString();
break;
default:
break;
}
};
var codBarras2LinhaDigitavel = (codigo, formatada) => {
codigo = codigo.replace(/[^0-9]/g, "");
const tipoBoleto = identificarTipoBoleto(codigo);
let resultado = "";
if (tipoBoleto == "BANCO" /* BANCO */ || tipoBoleto == "CARTAO_DE_CREDITO" /* CARTAO_DE_CREDITO */) {
const novaLinha = codigo.substr(0, 4) + codigo.substr(19, 25) + codigo.substr(4, 1) + codigo.substr(5, 14);
const bloco1 = novaLinha.substr(0, 9) + calculaMod10(novaLinha.substr(0, 9));
const bloco2 = novaLinha.substr(9, 10) + calculaMod10(novaLinha.substr(9, 10));
const bloco3 = novaLinha.substr(19, 10) + calculaMod10(novaLinha.substr(19, 10));
const bloco4 = novaLinha.substr(29);
resultado = (bloco1 + bloco2 + bloco3 + bloco4).toString();
if (formatada) {
resultado = resultado.slice(0, 5) + "." + resultado.slice(5, 10) + " " + resultado.slice(10, 15) + "." + resultado.slice(15, 21) + " " + resultado.slice(21, 26) + "." + resultado.slice(26, 32) + " " + resultado.slice(32, 33) + " " + resultado.slice(33);
}
} else {
const identificacaoValorRealOuReferencia = identificarReferencia(codigo);
let bloco1 = "";
let bloco2 = "";
let bloco3 = "";
let bloco4 = "";
if (identificacaoValorRealOuReferencia.mod == 10) {
bloco1 = codigo.substr(0, 11) + calculaMod10(codigo.substr(0, 11));
bloco2 = codigo.substr(11, 11) + calculaMod10(codigo.substr(11, 11));
bloco3 = codigo.substr(22, 11) + calculaMod10(codigo.substr(22, 11));
bloco4 = codigo.substr(33, 11) + calculaMod10(codigo.substr(33, 11));
} else if (identificacaoValorRealOuReferencia.mod == 11) {
bloco1 = codigo.substr(0, 11) + calculaMod11(codigo.substr(0, 11));
bloco2 = codigo.substr(11, 11) + calculaMod11(codigo.substr(11, 11));
bloco3 = codigo.substr(22, 11) + calculaMod11(codigo.substr(22, 11));
bloco4 = codigo.substr(33, 11) + calculaMod11(codigo.substr(33, 11));
}
resultado = bloco1 + bloco2 + bloco3 + bloco4;
}
return resultado;
};
var linhaDigitavel2CodBarras = (codigo) => {
codigo = codigo.replace(/[^0-9]/g, "");
const tipoBoleto = identificarTipoBoleto(codigo);
let resultado = "";
if (tipoBoleto == "BANCO" /* BANCO */ || tipoBoleto == "CARTAO_DE_CREDITO" /* CARTAO_DE_CREDITO */) {
resultado = codigo.substr(0, 4) + codigo.substr(32, 1) + codigo.substr(33, 14) + codigo.substr(4, 5) + codigo.substr(10, 10) + codigo.substr(21, 10);
} else {
const codArr = codigo.split("");
codArr.splice(11, 1);
codArr.splice(22, 1);
codArr.splice(33, 1);
codArr.splice(44, 1);
codigo = codArr.join("");
resultado = codigo;
}
return resultado;
};
var calculaDVCodBarras = (codigo, posicaoCodigo, mod) => {
codigo = codigo.replace(/[^0-9]/g, "");
const codArr = codigo.split("");
codArr.splice(posicaoCodigo, 1);
codigo = codArr.join("");
if (mod === 10) {
return calculaMod10(codigo);
} else if (mod === 11) {
return calculaMod11(codigo);
}
};
var validarCodigoComDV = (codigo, tipoCodigo) => {
codigo = codigo.replace(/[^0-9]/g, "");
let tipoBoleto;
let resultado;
if (tipoCodigo === "LINHA_DIGITAVEL" /* LINHA_DIGITAVEL */) {
tipoBoleto = identificarTipoBoleto(codigo);
if (tipoBoleto == "BANCO" /* BANCO */ || tipoBoleto == "CARTAO_DE_CREDITO" /* CARTAO_DE_CREDITO */) {
const bloco1 = codigo.substr(0, 9) + calculaMod10(codigo.substr(0, 9));
const bloco2 = codigo.substr(10, 10) + calculaMod10(codigo.substr(10, 10));
const bloco3 = codigo.substr(21, 10) + calculaMod10(codigo.substr(21, 10));
const bloco4 = codigo.substr(32, 1);
const bloco5 = codigo.substr(33);
resultado = (bloco1 + bloco2 + bloco3 + bloco4 + bloco5).toString();
} else {
const identificacaoValorRealOuReferencia = identificarReferencia(codigo);
let bloco1 = "";
let bloco2 = "";
let bloco3 = "";
let bloco4 = "";
if (identificacaoValorRealOuReferencia.mod == 10) {
bloco1 = codigo.substr(0, 11) + calculaMod10(codigo.substr(0, 11));
bloco2 = codigo.substr(12, 11) + calculaMod10(codigo.substr(12, 11));
bloco3 = codigo.substr(24, 11) + calculaMod10(codigo.substr(24, 11));
bloco4 = codigo.substr(36, 11) + calculaMod10(codigo.substr(36, 11));
} else if (identificacaoValorRealOuReferencia.mod == 11) {
bloco1 = codigo.substr(0, 11);
bloco2 = codigo.substr(12, 11);
bloco3 = codigo.substr(24, 11);
bloco4 = codigo.substr(36, 11);
let dv1 = parseInt(codigo.substr(11, 1));
let dv2 = parseInt(codigo.substr(23, 1));
let dv3 = parseInt(codigo.substr(35, 1));
let dv4 = parseInt(codigo.substr(47, 1));
let valid = calculaMod11(bloco1) == dv1 && calculaMod11(bloco2) == dv2 && calculaMod11(bloco3) == dv3 && calculaMod11(bloco4) == dv4;
return valid;
}
resultado = bloco1 + bloco2 + bloco3 + bloco4;
}
} else if (tipoCodigo === "CODIGO_DE_BARRAS" /* CODIGO_DE_BARRAS */) {
tipoBoleto = identificarTipoBoleto(codigo);
if (tipoBoleto == "BANCO" /* BANCO */ || tipoBoleto == "CARTAO_DE_CREDITO" /* CARTAO_DE_CREDITO */) {
const DV = calculaDVCodBarras(codigo, 4, 11);
resultado = codigo.substr(0, 4) + DV + codigo.substr(5);
} else {
const identificacaoValorRealOuReferencia = identificarReferencia(codigo);
resultado = codigo.split("");
resultado.splice(3, 1);
resultado = resultado.join("");
const DV = calculaDVCodBarras(
codigo,
3,
identificacaoValorRealOuReferencia.mod
);
resultado = resultado.substr(0, 3) + DV + resultado.substr(3);
}
}
return codigo === resultado;
};
var geraCodBarras = (codigo) => {
codigo = codigo.replace(/[^0-9]/g, "");
const tipoBoleto = identificarTipoBoleto(codigo);
let novoCodigo;
novoCodigo = linhaDigitavel2CodBarras(codigo);
novoCodigo = novoCodigo.split("");
novoCodigo.splice(4, 1);
novoCodigo = novoCodigo.join("");
let dv = calculaMod11(novoCodigo);
novoCodigo = novoCodigo.substr(0, 4) + dv + novoCodigo.substr(4);
return novoCodigo;
};
var validarBoleto = (codigo) => {
let tipoCodigo = identificarTipoCodigo(codigo);
let retorno = {};
codigo = codigo.replace(/[^0-9]/g, "");
if (codigo.length == 36) {
codigo = codigo + "00000000000";
} else if (codigo.length == 46) {
codigo = codigo + "0";
}
if (codigo.length != 44 && codigo.length != 46 && codigo.length != 47 && codigo.length != 48) {
retorno.sucesso = false;
retorno.codigoInput = codigo;
retorno.mensagem = "O c\xF3digo inserido possui " + codigo.length + " d\xEDgitos. Por favor insira uma numera\xE7\xE3o v\xE1lida. C\xF3digos de barras SEMPRE devem ter 44 caracteres num\xE9ricos. Linhas digit\xE1veis podem possuir 46 (boletos de cart\xE3o de cr\xE9dito), 47 (boletos banc\xE1rios/cobran\xE7a) ou 48 (contas conv\xEAnio/arrecada\xE7\xE3o) caracteres num\xE9ricos. Qualquer caractere n\xE3o num\xE9rico ser\xE1 desconsiderado.";
} else if (codigo.substr(0, 1) == "8" && codigo.length !== 44 && codigo.length !== 48) {
retorno.sucesso = false;
retorno.codigoInput = codigo;
retorno.mensagem = "Este tipo de boleto deve possuir um c\xF3digo de barras 44 caracteres num\xE9ricos. Ou linha digit\xE1vel de 48 caracteres num\xE9ricos.";
} else if (!validarCodigoComDV(codigo, tipoCodigo)) {
retorno.sucesso = false;
retorno.codigoInput = codigo;
retorno.mensagem = "A valida\xE7\xE3o do d\xEDgito verificador falhou. Tem certeza que inseriu a numera\xE7\xE3o correta?";
} else {
retorno.sucesso = true;
retorno.codigoInput = codigo;
retorno.mensagem = "Boleto v\xE1lido";
switch (tipoCodigo) {
case "LINHA_DIGITAVEL":
retorno.tipoCodigoInput = "LINHA_DIGITAVEL";
retorno.tipoBoleto = identificarTipoBoleto(codigo);
retorno.codigoBarras = linhaDigitavel2CodBarras(codigo);
retorno.linhaDigitavel = codigo;
retorno.vencimento = identificarData(
codigo,
"LINHA_DIGITAVEL" /* LINHA_DIGITAVEL */
);
retorno.vencimentoComNovoFator2025 = identificarDataComNovoFator2025(
codigo,
"LINHA_DIGITAVEL" /* LINHA_DIGITAVEL */
);
retorno.valor = identificarValor(codigo, "LINHA_DIGITAVEL" /* LINHA_DIGITAVEL */);
break;
case "CODIGO_DE_BARRAS":
retorno.tipoCodigoInput = "CODIGO_DE_BARRAS";
retorno.tipoBoleto = identificarTipoBoleto(codigo);
retorno.codigoBarras = codigo;
retorno.linhaDigitavel = codBarras2LinhaDigitavel(codigo, false);
retorno.vencimento = identificarData(
codigo,
"CODIGO_DE_BARRAS" /* CODIGO_DE_BARRAS */
);
retorno.vencimentoComNovoFator2025 = identificarDataComNovoFator2025(
codigo,
"CODIGO_DE_BARRAS" /* CODIGO_DE_BARRAS */
);
retorno.valor = identificarValor(codigo, "CODIGO_DE_BARRAS" /* CODIGO_DE_BARRAS */);
break;
default:
break;
}
}
return retorno;
};
var calculaMod10 = (numero) => {
numero = numero.replace(/\D/g, "");
var i;
var mult = 2;
var soma = 0;
var s = "";
for (i = numero.length - 1; i >= 0; i--) {
s = mult * parseInt(numero.charAt(i)) + s;
if (--mult < 1) {
mult = 2;
}
}
for (i = 0; i < s.length; i++) {
soma = soma + parseInt(s.charAt(i));
}
soma = soma % 10;
if (soma != 0) {
soma = 10 - soma;
}
return soma;
};
var calculaMod11 = (x) => {
let sequencia = [4, 3, 2, 9, 8, 7, 6, 5];
let digit = 0;
let j = 0;
let DAC = 0;
for (var i = 0; i < x.length; i++) {
let mult = sequencia[j];
j++;
j %= sequencia.length;
digit += mult * parseInt(x.charAt(i));
}
DAC = digit % 11;
if (DAC == 0 || DAC == 1) return 0;
if (DAC == 10) return 1;
return 11 - DAC;
};
function substringReplace(str, repl, inicio, tamanho) {
if (inicio < 0) {
inicio = inicio + str.length;
}
tamanho = tamanho !== void 0 ? tamanho : str.length;
if (tamanho < 0) {
tamanho = tamanho + str.length - inicio;
}
return [
str.slice(0, inicio),
repl.substr(0, tamanho),
repl.slice(tamanho),
str.slice(inicio + tamanho)
].join("");
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
TipoBoleto,
TipoCodigo,
calculaDVCodBarras,
calculaMod10,
calculaMod11,
codBarras2LinhaDigitavel,
digitosVerificadores,
geraCodBarras,
identificarData,
identificarDataComNovoFator2025,
identificarReferencia,
identificarTipoBoleto,
identificarTipoCodigo,
identificarValor,
identificarValorCodBarrasArrecadacao,
linhaDigitavel2CodBarras,
obtemFatorData,
validarBoleto,
validarCodigoComDV
});
//# sourceMappingURL=boleto-utils.js.map