opf-validator 0.0.1
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/README.md +143 -0
- package/dist/consent/index.d.ts +9 -0
- package/dist/consent/index.d.ts.map +1 -0
- package/dist/consent/index.js +12 -0
- package/dist/consent/index.js.map +1 -0
- package/dist/consent/successResponses/index.d.ts +89 -0
- package/dist/consent/successResponses/index.d.ts.map +1 -0
- package/dist/consent/successResponses/index.js +6 -0
- package/dist/consent/successResponses/index.js.map +1 -0
- package/dist/consent/validators/createConsent.d.ts +31 -0
- package/dist/consent/validators/createConsent.d.ts.map +1 -0
- package/dist/consent/validators/createConsent.js +205 -0
- package/dist/consent/validators/createConsent.js.map +1 -0
- package/dist/consent/validators/createConsentExtensions.d.ts +33 -0
- package/dist/consent/validators/createConsentExtensions.d.ts.map +1 -0
- package/dist/consent/validators/createConsentExtensions.js +193 -0
- package/dist/consent/validators/createConsentExtensions.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +60 -0
- package/dist/index.js.map +1 -0
- package/dist/payments/index.d.ts +11 -0
- package/dist/payments/index.d.ts.map +1 -0
- package/dist/payments/index.js +18 -0
- package/dist/payments/index.js.map +1 -0
- package/dist/payments/successResponses/index.d.ts +129 -0
- package/dist/payments/successResponses/index.d.ts.map +1 -0
- package/dist/payments/successResponses/index.js +6 -0
- package/dist/payments/successResponses/index.js.map +1 -0
- package/dist/payments/validators/createPaymentConsent.d.ts +66 -0
- package/dist/payments/validators/createPaymentConsent.d.ts.map +1 -0
- package/dist/payments/validators/createPaymentConsent.js +508 -0
- package/dist/payments/validators/createPaymentConsent.js.map +1 -0
- package/dist/payments/validators/createPixPayment.d.ts +35 -0
- package/dist/payments/validators/createPixPayment.d.ts.map +1 -0
- package/dist/payments/validators/createPixPayment.js +342 -0
- package/dist/payments/validators/createPixPayment.js.map +1 -0
- package/dist/payments/validators/patchPixPayment.d.ts +40 -0
- package/dist/payments/validators/patchPixPayment.d.ts.map +1 -0
- package/dist/payments/validators/patchPixPayment.js +191 -0
- package/dist/payments/validators/patchPixPayment.js.map +1 -0
- package/dist/recurring-payments/index.d.ts +13 -0
- package/dist/recurring-payments/index.d.ts.map +1 -0
- package/dist/recurring-payments/index.js +17 -0
- package/dist/recurring-payments/index.js.map +1 -0
- package/dist/recurring-payments/successResponses/index.d.ts +175 -0
- package/dist/recurring-payments/successResponses/index.d.ts.map +1 -0
- package/dist/recurring-payments/successResponses/index.js +6 -0
- package/dist/recurring-payments/successResponses/index.js.map +1 -0
- package/dist/recurring-payments/validators/createRecurringConsent.d.ts +96 -0
- package/dist/recurring-payments/validators/createRecurringConsent.d.ts.map +1 -0
- package/dist/recurring-payments/validators/createRecurringConsent.js +663 -0
- package/dist/recurring-payments/validators/createRecurringConsent.js.map +1 -0
- package/dist/recurring-payments/validators/createRecurringRetryPixPayment.d.ts +19 -0
- package/dist/recurring-payments/validators/createRecurringRetryPixPayment.d.ts.map +1 -0
- package/dist/recurring-payments/validators/createRecurringRetryPixPayment.js +41 -0
- package/dist/recurring-payments/validators/createRecurringRetryPixPayment.js.map +1 -0
- package/dist/recurring-payments/validators/patchPixPayment.d.ts +38 -0
- package/dist/recurring-payments/validators/patchPixPayment.d.ts.map +1 -0
- package/dist/recurring-payments/validators/patchPixPayment.js +123 -0
- package/dist/recurring-payments/validators/patchPixPayment.js.map +1 -0
- package/dist/recurring-payments/validators/patchRecurringConsent.d.ts +87 -0
- package/dist/recurring-payments/validators/patchRecurringConsent.d.ts.map +1 -0
- package/dist/recurring-payments/validators/patchRecurringConsent.js +555 -0
- package/dist/recurring-payments/validators/patchRecurringConsent.js.map +1 -0
- package/dist/utils/openFinanceErrors.d.ts +84 -0
- package/dist/utils/openFinanceErrors.d.ts.map +1 -0
- package/dist/utils/openFinanceErrors.js +85 -0
- package/dist/utils/openFinanceErrors.js.map +1 -0
- package/dist/utils/paymentErrors.d.ts +9 -0
- package/dist/utils/paymentErrors.d.ts.map +1 -0
- package/dist/utils/paymentErrors.js +13 -0
- package/dist/utils/paymentErrors.js.map +1 -0
- package/dist/utils/successResponses.d.ts +52 -0
- package/dist/utils/successResponses.d.ts.map +1 -0
- package/dist/utils/successResponses.js +6 -0
- package/dist/utils/successResponses.js.map +1 -0
- package/dist/utils/validateHeaderParameters.d.ts +51 -0
- package/dist/utils/validateHeaderParameters.d.ts.map +1 -0
- package/dist/utils/validateHeaderParameters.js +142 -0
- package/dist/utils/validateHeaderParameters.js.map +1 -0
- package/dist/utils/validationHelpers.d.ts +89 -0
- package/dist/utils/validationHelpers.d.ts.map +1 -0
- package/dist/utils/validationHelpers.js +376 -0
- package/dist/utils/validationHelpers.js.map +1 -0
- package/package.json +20 -0
package/README.md
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# OPF Validator
|
|
2
|
+
|
|
3
|
+
Biblioteca TypeScript para validar requisições da Open Finance Brasil.
|
|
4
|
+
|
|
5
|
+
## Características
|
|
6
|
+
|
|
7
|
+
- ✅ Validadores para consentimentos, pagamentos únicos e recorrentes
|
|
8
|
+
- ✅ Suporte completo a TypeScript
|
|
9
|
+
- ✅ Tratamento de erros conforme Open Finance Brasil
|
|
10
|
+
- ✅ Estrutura modular por domínio
|
|
11
|
+
- ✅ Sem dependências
|
|
12
|
+
|
|
13
|
+
## Instalação
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install opf-validator
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Uso Rápido
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import { validateCreatePixPayment } from "opf-validator/payments";
|
|
23
|
+
|
|
24
|
+
const resultado = validateCreatePixPayment({
|
|
25
|
+
data: {
|
|
26
|
+
endToEndId: "E12345678901234567890123456789",
|
|
27
|
+
date: "2025-01-15",
|
|
28
|
+
payment: { amount: "250.75", currency: "BRL" },
|
|
29
|
+
creditorAccount: { ispb: "00000000", number: "9876543210987", accountType: "CACC", issuer: "code" },
|
|
30
|
+
document: { identification: "12345678901", rel: "CPF" },
|
|
31
|
+
localInstrument: "DICT"
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
if (resultado.isValid) {
|
|
36
|
+
console.log("✓ Válido");
|
|
37
|
+
} else {
|
|
38
|
+
console.error("✗ Erros:", resultado.errors);
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Validadores Disponíveis
|
|
43
|
+
|
|
44
|
+
### Headers de Requisição
|
|
45
|
+
- `validateHeaders` - Validar todos os headers
|
|
46
|
+
- `validateHeader` - Validar um header específico com obrigatoriedade customizável
|
|
47
|
+
- `validateHeaderRequired` - Validar header como obrigatório
|
|
48
|
+
- `validateHeaderOptional` - Validar header como opcional
|
|
49
|
+
|
|
50
|
+
### Consentimentos
|
|
51
|
+
- `validateCreateConsent` - Criar consentimento
|
|
52
|
+
- `validateCreateConsentExtensions` - Estender consentimento
|
|
53
|
+
|
|
54
|
+
### Pagamentos Únicos
|
|
55
|
+
- `validateCreatePaymentConsent` - Criar consentimento de pagamento
|
|
56
|
+
- `validateCreatePixPayment` - Criar pagamento Pix
|
|
57
|
+
- `validatePatchPixPayment` - Cancelar pagamento
|
|
58
|
+
|
|
59
|
+
### Pagamentos Recorrentes
|
|
60
|
+
- `validateCreateRecurringConsent` - Criar consentimento recorrente
|
|
61
|
+
- `validatePatchRecurringConsent` - Autorizar consentimento recorrente
|
|
62
|
+
- `validateCreateRecurringPixPayment` - Criar pagamento recorrente
|
|
63
|
+
- `validatePatchRecurringPixPayment` - Cancelar pagamento recorrente
|
|
64
|
+
- `validateCreateRecurringRetryPixPayment` - Tentar novamente pagamento recorrente
|
|
65
|
+
|
|
66
|
+
## Validação de Headers HTTP
|
|
67
|
+
|
|
68
|
+
Os headers são validados conforme especificações da Open Finance Brasil. Há três formas de validação:
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
import {
|
|
72
|
+
validateHeader,
|
|
73
|
+
validateHeaderRequired,
|
|
74
|
+
validateHeaderOptional,
|
|
75
|
+
validateHeaders
|
|
76
|
+
} from "opf-validator/utils/validateHeaderParameters";
|
|
77
|
+
|
|
78
|
+
// Forma 1: Com override de obrigatoriedade (customizável por endpoint)
|
|
79
|
+
const result = validateHeader('x-fapi-interaction-id', value, false); // Opcional
|
|
80
|
+
const result = validateHeader('Authorization', token, true); // Obrigatório
|
|
81
|
+
|
|
82
|
+
// Forma 2: Sempre obrigatório
|
|
83
|
+
const result = validateHeaderRequired('x-fapi-interaction-id', uuid);
|
|
84
|
+
|
|
85
|
+
// Forma 3: Sempre opcional
|
|
86
|
+
const result = validateHeaderOptional('X-Idempotency-Key', key);
|
|
87
|
+
|
|
88
|
+
// Validar todos os headers de uma requisição
|
|
89
|
+
const result = validateHeaders(request.headers);
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Exemplo com Express:**
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
import express from 'express';
|
|
96
|
+
import { validateHeaders } from 'opf-validator/utils/validateHeaderParameters';
|
|
97
|
+
|
|
98
|
+
app.post('/api/payments', (req, res) => {
|
|
99
|
+
const validation = validateHeaders(req.headers);
|
|
100
|
+
if (!validation.isValid) {
|
|
101
|
+
return res.status(400).json(validation.errors);
|
|
102
|
+
}
|
|
103
|
+
// Prosseguir com a lógica...
|
|
104
|
+
});
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Para exemplos detalhados, consulte [VALIDATORS_GUIDE.md](./VALIDATORS_GUIDE.md).
|
|
108
|
+
|
|
109
|
+
## Módulos
|
|
110
|
+
|
|
111
|
+
```typescript
|
|
112
|
+
// Consentimentos
|
|
113
|
+
import { validateCreateConsent, validateCreateConsentExtensions } from "opf-validator/consent";
|
|
114
|
+
|
|
115
|
+
// Pagamentos únicos
|
|
116
|
+
import { validateCreatePaymentConsent, validateCreatePixPayment, validatePatchPixPayment } from "opf-validator/payments";
|
|
117
|
+
|
|
118
|
+
// Pagamentos recorrentes
|
|
119
|
+
import { validateCreateRecurringConsent, validatePatchRecurringConsent, validateCreateRecurringPixPayment, validatePatchRecurringPixPayment, validateCreateRecurringRetryPixPayment } from "opf-validator/recurring-payments";
|
|
120
|
+
|
|
121
|
+
// Utilitários
|
|
122
|
+
import { validateCPF, validateAmount } from "opf-validator";
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Documentação
|
|
126
|
+
|
|
127
|
+
Veja [QUICK_START.md](./QUICK_START.md) para exemplos completos.
|
|
128
|
+
|
|
129
|
+
## Estrutura
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
opf-validator/
|
|
133
|
+
├── consent/ # Validadores de consentimentos
|
|
134
|
+
├── payments/ # Validadores de pagamentos únicos
|
|
135
|
+
├── recurring-payments/ # Validadores de pagamentos recorrentes
|
|
136
|
+
├── utils/ # Utilitários e tipos
|
|
137
|
+
├── index.ts # Exports principais
|
|
138
|
+
└── QUICK_START.md # Guia de início rápido
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Referências
|
|
142
|
+
|
|
143
|
+
- [Open Finance Brasil](https://www.gov.br/cidadania/pt-br/acesso-a-informacao/perguntas-frequentes/open-finance)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consent Module - Exports all validators and success responses
|
|
3
|
+
*/
|
|
4
|
+
export { validateCreateConsent } from "./validators/createConsent";
|
|
5
|
+
export type { CreateConsentPayload, CreateConsentData } from "./validators/createConsent";
|
|
6
|
+
export { validateCreateConsentExtensions } from "./validators/createConsentExtensions";
|
|
7
|
+
export type { CreateConsentExtensionsPayload, CreateConsentExtensionsData, LoggedUserExtensions, BusinessEntityExtensions, } from "./validators/createConsentExtensions";
|
|
8
|
+
export type { CreateConsentSuccessResponse, GetConsentSuccessResponse, CreateConsentExtensionsSuccessResponse, } from "./successResponses";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/consent/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE1F,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AACvF,YAAY,EACV,8BAA8B,EAC9B,2BAA2B,EAC3B,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,sCAAsC,CAAC;AAG9C,YAAY,EACV,4BAA4B,EAC5B,yBAAyB,EACzB,sCAAsC,GACvC,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Consent Module - Exports all validators and success responses
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.validateCreateConsentExtensions = exports.validateCreateConsent = void 0;
|
|
7
|
+
// Validators
|
|
8
|
+
var createConsent_1 = require("./validators/createConsent");
|
|
9
|
+
Object.defineProperty(exports, "validateCreateConsent", { enumerable: true, get: function () { return createConsent_1.validateCreateConsent; } });
|
|
10
|
+
var createConsentExtensions_1 = require("./validators/createConsentExtensions");
|
|
11
|
+
Object.defineProperty(exports, "validateCreateConsentExtensions", { enumerable: true, get: function () { return createConsentExtensions_1.validateCreateConsentExtensions; } });
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/consent/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,aAAa;AACb,4DAAmE;AAA1D,sHAAA,qBAAqB,OAAA;AAG9B,gFAAuF;AAA9E,0IAAA,+BAA+B,OAAA"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interfaces de Sucesso para Respostas de Consent
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Resposta de sucesso para POST /consents (CreateConsent)
|
|
6
|
+
*/
|
|
7
|
+
export interface CreateConsentSuccessResponse {
|
|
8
|
+
data: {
|
|
9
|
+
consentId: string;
|
|
10
|
+
status: string;
|
|
11
|
+
statusUpdateDateTime: string;
|
|
12
|
+
permissions: string[];
|
|
13
|
+
expirationDateTime: string;
|
|
14
|
+
loggedUser?: {
|
|
15
|
+
document: {
|
|
16
|
+
identification: string;
|
|
17
|
+
rel: string;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
links?: {
|
|
22
|
+
self: string;
|
|
23
|
+
first?: string;
|
|
24
|
+
prev?: string;
|
|
25
|
+
next?: string;
|
|
26
|
+
last?: string;
|
|
27
|
+
};
|
|
28
|
+
meta?: {
|
|
29
|
+
totalRecords?: number;
|
|
30
|
+
totalPages?: number;
|
|
31
|
+
requestDateTime: string;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Resposta de sucesso para GET /consents/:consentId (GetConsent)
|
|
36
|
+
*/
|
|
37
|
+
export interface GetConsentSuccessResponse {
|
|
38
|
+
data: {
|
|
39
|
+
consentId: string;
|
|
40
|
+
status: string;
|
|
41
|
+
statusUpdateDateTime: string;
|
|
42
|
+
permissions: string[];
|
|
43
|
+
expirationDateTime: string;
|
|
44
|
+
creationDateTime: string;
|
|
45
|
+
loggedUser?: {
|
|
46
|
+
document: {
|
|
47
|
+
identification: string;
|
|
48
|
+
rel: string;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
links?: {
|
|
53
|
+
self: string;
|
|
54
|
+
};
|
|
55
|
+
meta?: {
|
|
56
|
+
requestDateTime: string;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Resposta de sucesso para POST /consents/:consentId/extensions (CreateConsentExtensions)
|
|
61
|
+
*/
|
|
62
|
+
export interface CreateConsentExtensionsSuccessResponse {
|
|
63
|
+
data: {
|
|
64
|
+
consentId: string;
|
|
65
|
+
status: string;
|
|
66
|
+
statusUpdateDateTime: string;
|
|
67
|
+
permissions: string[];
|
|
68
|
+
expirationDateTime: string;
|
|
69
|
+
loggedUser?: {
|
|
70
|
+
document: {
|
|
71
|
+
identification: string;
|
|
72
|
+
rel: string;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
businessEntity?: {
|
|
76
|
+
document: {
|
|
77
|
+
identification: string;
|
|
78
|
+
rel: string;
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
links?: {
|
|
83
|
+
self: string;
|
|
84
|
+
};
|
|
85
|
+
meta?: {
|
|
86
|
+
requestDateTime: string;
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/consent/successResponses/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,oBAAoB,EAAE,MAAM,CAAC;QAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,UAAU,CAAC,EAAE;YACX,QAAQ,EAAE;gBACR,cAAc,EAAE,MAAM,CAAC;gBACvB,GAAG,EAAE,MAAM,CAAC;aACb,CAAC;SACH,CAAC;KACH,CAAC;IACF,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,IAAI,CAAC,EAAE;QACL,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,oBAAoB,EAAE,MAAM,CAAC;QAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE;YACX,QAAQ,EAAE;gBACR,cAAc,EAAE,MAAM,CAAC;gBACvB,GAAG,EAAE,MAAM,CAAC;aACb,CAAC;SACH,CAAC;KACH,CAAC;IACF,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,IAAI,CAAC,EAAE;QACL,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,sCAAsC;IACrD,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,oBAAoB,EAAE,MAAM,CAAC;QAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,UAAU,CAAC,EAAE;YACX,QAAQ,EAAE;gBACR,cAAc,EAAE,MAAM,CAAC;gBACvB,GAAG,EAAE,MAAM,CAAC;aACb,CAAC;SACH,CAAC;QACF,cAAc,CAAC,EAAE;YACf,QAAQ,EAAE;gBACR,cAAc,EAAE,MAAM,CAAC;gBACvB,GAAG,EAAE,MAAM,CAAC;aACb,CAAC;SACH,CAAC;KACH,CAAC;IACF,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,IAAI,CAAC,EAAE;QACL,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/consent/successResponses/index.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validações para CreateConsent
|
|
3
|
+
* Segue as regras especificadas no Open Finance Brasil
|
|
4
|
+
*/
|
|
5
|
+
import { ValidationResult } from "../../utils/openFinanceErrors";
|
|
6
|
+
interface LoggedUser {
|
|
7
|
+
documentType: string;
|
|
8
|
+
documentNumber: string;
|
|
9
|
+
}
|
|
10
|
+
interface BusinessEntity {
|
|
11
|
+
document: {
|
|
12
|
+
identification: string;
|
|
13
|
+
rel: string;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
interface CreateConsentData {
|
|
17
|
+
permissions: string[];
|
|
18
|
+
loggedUser: LoggedUser;
|
|
19
|
+
businessEntity?: BusinessEntity;
|
|
20
|
+
expirationDateTime?: string;
|
|
21
|
+
isLinked?: boolean;
|
|
22
|
+
}
|
|
23
|
+
interface CreateConsentPayload {
|
|
24
|
+
data: CreateConsentData;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Valida o payload de criação de consentimento
|
|
28
|
+
*/
|
|
29
|
+
export declare function validateCreateConsent(payload: any): ValidationResult;
|
|
30
|
+
export { CreateConsentPayload, CreateConsentData };
|
|
31
|
+
//# sourceMappingURL=createConsent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createConsent.d.ts","sourceRoot":"","sources":["../../../src/consent/validators/createConsent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,gBAAgB,EAGjB,MAAM,+BAA+B,CAAC;AAEvC,UAAU,UAAU;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,cAAc;IACtB,QAAQ,EAAE;QACR,cAAc,EAAE,MAAM,CAAC;QACvB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,UAAU,iBAAiB;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,oBAAoB;IAC5B,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAyCD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,GAAG,GAAG,gBAAgB,CAuDpE;AA8MD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Validações para CreateConsent
|
|
4
|
+
* Segue as regras especificadas no Open Finance Brasil
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.validateCreateConsent = validateCreateConsent;
|
|
8
|
+
const openFinanceErrors_1 = require("../../utils/openFinanceErrors");
|
|
9
|
+
const VALID_PERMISSIONS = [
|
|
10
|
+
"ACCOUNTS_READ",
|
|
11
|
+
"ACCOUNTS_BALANCES_READ",
|
|
12
|
+
"ACCOUNTS_TRANSACTIONS_READ",
|
|
13
|
+
"ACCOUNTS_OVERDRAFT_LIMITS_READ",
|
|
14
|
+
"CREDIT_CARDS_ACCOUNTS_READ",
|
|
15
|
+
"CREDIT_CARDS_ACCOUNTS_BILLS_READ",
|
|
16
|
+
"CREDIT_CARDS_ACCOUNTS_BILLS_TRANSACTIONS_READ",
|
|
17
|
+
"CREDIT_CARDS_ACCOUNTS_LIMITS_READ",
|
|
18
|
+
"CREDIT_CARDS_ACCOUNTS_TRANSACTIONS_READ",
|
|
19
|
+
"CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ",
|
|
20
|
+
"CUSTOMERS_PERSONAL_ADITTIONALINFO_READ",
|
|
21
|
+
"CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ",
|
|
22
|
+
"CUSTOMERS_BUSINESS_ADITTIONALINFO_READ",
|
|
23
|
+
"FINANCINGS_READ",
|
|
24
|
+
"FINANCINGS_SCHEDULED_INSTALMENTS_READ",
|
|
25
|
+
"FINANCINGS_PAYMENTS_READ",
|
|
26
|
+
"FINANCINGS_WARRANTIES_READ",
|
|
27
|
+
"INVOICE_FINANCINGS_READ",
|
|
28
|
+
"INVOICE_FINANCINGS_SCHEDULED_INSTALMENTS_READ",
|
|
29
|
+
"INVOICE_FINANCINGS_PAYMENTS_READ",
|
|
30
|
+
"INVOICE_FINANCINGS_WARRANTIES_READ",
|
|
31
|
+
"LOANS_READ",
|
|
32
|
+
"LOANS_SCHEDULED_INSTALMENTS_READ",
|
|
33
|
+
"LOANS_PAYMENTS_READ",
|
|
34
|
+
"LOANS_WARRANTIES_READ",
|
|
35
|
+
"UNARRANGED_ACCOUNTS_OVERDRAFT_READ",
|
|
36
|
+
"UNARRANGED_ACCOUNTS_OVERDRAFT_SCHEDULED_INSTALMENTS_READ",
|
|
37
|
+
"UNARRANGED_ACCOUNTS_OVERDRAFT_PAYMENTS_READ",
|
|
38
|
+
"UNARRANGED_ACCOUNTS_OVERDRAFT_WARRANTIES_READ",
|
|
39
|
+
"RESOURCES_READ",
|
|
40
|
+
"BANK_FIXED_INCOMES_READ",
|
|
41
|
+
"CREDIT_FIXED_INCOMES_READ",
|
|
42
|
+
"FUNDS_READ",
|
|
43
|
+
"VARIABLE_INCOMES_READ",
|
|
44
|
+
"TREASURE_TITLES_READ",
|
|
45
|
+
"EXCHANGES_READ",
|
|
46
|
+
];
|
|
47
|
+
/**
|
|
48
|
+
* Valida o payload de criação de consentimento
|
|
49
|
+
*/
|
|
50
|
+
function validateCreateConsent(payload) {
|
|
51
|
+
const errors = [];
|
|
52
|
+
// Validação: data deve existir
|
|
53
|
+
if (!payload.data) {
|
|
54
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_NAO_INFORMADO("data"));
|
|
55
|
+
return { isValid: false, errors };
|
|
56
|
+
}
|
|
57
|
+
const data = payload.data;
|
|
58
|
+
// Validação: permissions é obrigatório
|
|
59
|
+
if (!data.permissions) {
|
|
60
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_NAO_INFORMADO("permissions"));
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
const permissionErrors = validatePermissions(data.permissions);
|
|
64
|
+
errors.push(...permissionErrors);
|
|
65
|
+
}
|
|
66
|
+
// Validação: loggedUser é obrigatório
|
|
67
|
+
if (!data.loggedUser) {
|
|
68
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_NAO_INFORMADO("loggedUser"));
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
const loggedUserErrors = validateLoggedUser(data.loggedUser);
|
|
72
|
+
errors.push(...loggedUserErrors);
|
|
73
|
+
}
|
|
74
|
+
// Validação: expirationDateTime (regulatory-required)
|
|
75
|
+
if (data.expirationDateTime) {
|
|
76
|
+
const expirationErrors = validateExpirationDateTime(data.expirationDateTime);
|
|
77
|
+
errors.push(...expirationErrors);
|
|
78
|
+
}
|
|
79
|
+
// Validação: isLinked
|
|
80
|
+
if (data.isLinked !== undefined && typeof data.isLinked !== "boolean") {
|
|
81
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_INVALIDO("isLinked", "Deve ser um valor booleano"));
|
|
82
|
+
}
|
|
83
|
+
// Validação: businessEntity (opcional)
|
|
84
|
+
if (data.businessEntity) {
|
|
85
|
+
const businessEntityErrors = validateBusinessEntity(data.businessEntity);
|
|
86
|
+
errors.push(...businessEntityErrors);
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
isValid: errors.length === 0,
|
|
90
|
+
errors,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Valida permissions array
|
|
95
|
+
*/
|
|
96
|
+
function validatePermissions(permissions) {
|
|
97
|
+
const errors = [];
|
|
98
|
+
if (!Array.isArray(permissions)) {
|
|
99
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_INVALIDO("permissions", "Deve ser um array de strings"));
|
|
100
|
+
return errors;
|
|
101
|
+
}
|
|
102
|
+
if (permissions.length === 0) {
|
|
103
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_INVALIDO("permissions", "Array não pode estar vazio (minItems: 1)"));
|
|
104
|
+
return errors;
|
|
105
|
+
}
|
|
106
|
+
// Validar duplicidade
|
|
107
|
+
const uniquePermissions = new Set(permissions);
|
|
108
|
+
if (uniquePermissions.size !== permissions.length) {
|
|
109
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_INVALIDO("permissions", "Array não deve ter duplicidade de itens"));
|
|
110
|
+
}
|
|
111
|
+
// Validar permissões conhecidas
|
|
112
|
+
const invalidPermissions = permissions.filter((permission) => !VALID_PERMISSIONS.includes(permission));
|
|
113
|
+
if (invalidPermissions.length > 0) {
|
|
114
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_INVALIDO("permissions", `Permissões inválidas encontradas: ${invalidPermissions.join(", ")}`));
|
|
115
|
+
}
|
|
116
|
+
return errors;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Valida LoggedUser
|
|
120
|
+
*/
|
|
121
|
+
function validateLoggedUser(loggedUser) {
|
|
122
|
+
const errors = [];
|
|
123
|
+
if (typeof loggedUser !== "object" || loggedUser === null) {
|
|
124
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_INVALIDO("loggedUser", "Deve ser um objeto"));
|
|
125
|
+
return errors;
|
|
126
|
+
}
|
|
127
|
+
// documentType é obrigatório
|
|
128
|
+
if (!loggedUser.documentType) {
|
|
129
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_NAO_INFORMADO("loggedUser.documentType"));
|
|
130
|
+
}
|
|
131
|
+
else if (typeof loggedUser.documentType !== "string") {
|
|
132
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_INVALIDO("loggedUser.documentType", "Deve ser uma string"));
|
|
133
|
+
}
|
|
134
|
+
// documentNumber é obrigatório
|
|
135
|
+
if (!loggedUser.documentNumber) {
|
|
136
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_NAO_INFORMADO("loggedUser.documentNumber"));
|
|
137
|
+
}
|
|
138
|
+
else if (typeof loggedUser.documentNumber !== "string") {
|
|
139
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_INVALIDO("loggedUser.documentNumber", "Deve ser uma string"));
|
|
140
|
+
}
|
|
141
|
+
return errors;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Valida expirationDateTime
|
|
145
|
+
* RFC-3339 format: YYYY-MM-DDTHH:mm:ssZ
|
|
146
|
+
* maxLength: 20
|
|
147
|
+
*/
|
|
148
|
+
function validateExpirationDateTime(expirationDateTime) {
|
|
149
|
+
const errors = [];
|
|
150
|
+
if (typeof expirationDateTime !== "string") {
|
|
151
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_INVALIDO("expirationDateTime", "Deve ser uma string em formato RFC-3339"));
|
|
152
|
+
return errors;
|
|
153
|
+
}
|
|
154
|
+
if (expirationDateTime.length > 20) {
|
|
155
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_INVALIDO("expirationDateTime", "Deve ter no máximo 20 caracteres"));
|
|
156
|
+
}
|
|
157
|
+
// Validar formato RFC-3339 (UTC)
|
|
158
|
+
const rfc3339Pattern = /^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$/;
|
|
159
|
+
if (!rfc3339Pattern.test(expirationDateTime)) {
|
|
160
|
+
errors.push((0, openFinanceErrors_1.createError)("DATA_EXPIRACAO_INVALIDA", "Nova data para expiração do consentimento é inválida.", "A data de expiração deve estar no formato RFC-3339 com timezone UTC (YYYY-MM-DDTHH:mm:ssZ)"));
|
|
161
|
+
}
|
|
162
|
+
return errors;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Valida BusinessEntity
|
|
166
|
+
*/
|
|
167
|
+
function validateBusinessEntity(businessEntity) {
|
|
168
|
+
const errors = [];
|
|
169
|
+
if (typeof businessEntity !== "object" || businessEntity === null) {
|
|
170
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_INVALIDO("businessEntity", "Deve ser um objeto"));
|
|
171
|
+
return errors;
|
|
172
|
+
}
|
|
173
|
+
if (!businessEntity.document) {
|
|
174
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_NAO_INFORMADO("businessEntity.document"));
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
const documentErrors = validateDocument(businessEntity.document);
|
|
178
|
+
errors.push(...documentErrors);
|
|
179
|
+
}
|
|
180
|
+
return errors;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Valida Document
|
|
184
|
+
*/
|
|
185
|
+
function validateDocument(document) {
|
|
186
|
+
const errors = [];
|
|
187
|
+
if (typeof document !== "object" || document === null) {
|
|
188
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_INVALIDO("document", "Deve ser um objeto"));
|
|
189
|
+
return errors;
|
|
190
|
+
}
|
|
191
|
+
if (!document.identification) {
|
|
192
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_NAO_INFORMADO("document.identification"));
|
|
193
|
+
}
|
|
194
|
+
else if (typeof document.identification !== "string") {
|
|
195
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_INVALIDO("document.identification", "Deve ser uma string"));
|
|
196
|
+
}
|
|
197
|
+
if (!document.rel) {
|
|
198
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_NAO_INFORMADO("document.rel"));
|
|
199
|
+
}
|
|
200
|
+
else if (typeof document.rel !== "string") {
|
|
201
|
+
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_INVALIDO("document.rel", "Deve ser uma string"));
|
|
202
|
+
}
|
|
203
|
+
return errors;
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=createConsent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createConsent.js","sourceRoot":"","sources":["../../../src/consent/validators/createConsent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validações para CreateConsentExtensions
|
|
3
|
+
* Segue as regras especificadas no Open Finance Brasil para renovação de consentimento
|
|
4
|
+
*/
|
|
5
|
+
import { ValidationResult } from "../../utils/openFinanceErrors";
|
|
6
|
+
interface LoggedUserDocumentExtensions {
|
|
7
|
+
identification: string;
|
|
8
|
+
rel: string;
|
|
9
|
+
}
|
|
10
|
+
interface LoggedUserExtensions {
|
|
11
|
+
document: LoggedUserDocumentExtensions;
|
|
12
|
+
}
|
|
13
|
+
interface BusinessEntityDocumentExtensions {
|
|
14
|
+
identification: string;
|
|
15
|
+
rel: string;
|
|
16
|
+
}
|
|
17
|
+
interface BusinessEntityExtensions {
|
|
18
|
+
document: BusinessEntityDocumentExtensions;
|
|
19
|
+
}
|
|
20
|
+
interface CreateConsentExtensionsData {
|
|
21
|
+
expirationDateTime?: string;
|
|
22
|
+
loggedUser: LoggedUserExtensions;
|
|
23
|
+
businessEntity?: BusinessEntityExtensions;
|
|
24
|
+
}
|
|
25
|
+
interface CreateConsentExtensionsPayload {
|
|
26
|
+
data: CreateConsentExtensionsData;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Valida o payload de renovação de consentimento
|
|
30
|
+
*/
|
|
31
|
+
export declare function validateCreateConsentExtensions(payload: any): ValidationResult;
|
|
32
|
+
export { CreateConsentExtensionsPayload, CreateConsentExtensionsData, LoggedUserExtensions, BusinessEntityExtensions, };
|
|
33
|
+
//# sourceMappingURL=createConsentExtensions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createConsentExtensions.d.ts","sourceRoot":"","sources":["../../../src/consent/validators/createConsentExtensions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,gBAAgB,EAGjB,MAAM,+BAA+B,CAAC;AAEvC,UAAU,4BAA4B;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,4BAA4B,CAAC;CACxC;AAED,UAAU,gCAAgC;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,UAAU,wBAAwB;IAChC,QAAQ,EAAE,gCAAgC,CAAC;CAC5C;AAED,UAAU,2BAA2B;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,oBAAoB,CAAC;IACjC,cAAc,CAAC,EAAE,wBAAwB,CAAC;CAC3C;AAED,UAAU,8BAA8B;IACtC,IAAI,EAAE,2BAA2B,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,GAAG,GAAG,gBAAgB,CAuC9E;AA0RD,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,EAC3B,oBAAoB,EACpB,wBAAwB,GACzB,CAAC"}
|