opf-validator-beta 0.0.53 → 0.0.55
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/consent/validators/createConsent.js +6 -6
- package/dist/consent/validators/createConsent.js.map +1 -1
- package/dist/utils/validators/consentValidationHelpers.d.ts.map +1 -1
- package/dist/utils/validators/consentValidationHelpers.js +36 -22
- package/dist/utils/validators/consentValidationHelpers.js.map +1 -1
- package/package.json +1 -1
|
@@ -19,6 +19,11 @@ function validateCreateConsent(payload) {
|
|
|
19
19
|
return { isValid: false, statusCode: (0, openFinanceErrors_1.getStatusCode)(errors), errors };
|
|
20
20
|
}
|
|
21
21
|
const data = payload.data;
|
|
22
|
+
// Validação: expirationDateTime (regulatory-required)
|
|
23
|
+
if (data.expirationDateTime) {
|
|
24
|
+
const expirationErrors = (0, validationHelpers_1.validateExpirationDate)(data.expirationDateTime);
|
|
25
|
+
errors.push(...expirationErrors);
|
|
26
|
+
}
|
|
22
27
|
// Validação: permissions é obrigatório
|
|
23
28
|
if (!data.permissions) {
|
|
24
29
|
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_NAO_INFORMADO("permissions"));
|
|
@@ -48,11 +53,6 @@ function validateCreateConsent(payload) {
|
|
|
48
53
|
errors.push(...businessEntityErrors);
|
|
49
54
|
}
|
|
50
55
|
}
|
|
51
|
-
// Validação: expirationDateTime (regulatory-required)
|
|
52
|
-
if (data.expirationDateTime) {
|
|
53
|
-
const expirationErrors = (0, validationHelpers_1.validateExpirationDate)(data.expirationDateTime);
|
|
54
|
-
errors.push(...expirationErrors);
|
|
55
|
-
}
|
|
56
56
|
// Validação: isLinked
|
|
57
57
|
if (data.isLinked !== undefined && typeof data.isLinked !== "boolean") {
|
|
58
58
|
errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_INVALIDO("isLinked", "Deve ser um valor booleano"));
|
|
@@ -79,7 +79,7 @@ function validatePermissions(permissions) {
|
|
|
79
79
|
// Validar duplicidade
|
|
80
80
|
const uniquePermissions = new Set(permissions);
|
|
81
81
|
if (uniquePermissions.size !== permissions.length) {
|
|
82
|
-
errors.push(openFinanceErrors_1.CommonErrors.
|
|
82
|
+
errors.push(openFinanceErrors_1.CommonErrors.SEM_PERMISSOES_FUNCIONAIS_RESTANTES("permissions contém permissões duplicadas"));
|
|
83
83
|
}
|
|
84
84
|
// Validar permissões conhecidas
|
|
85
85
|
const invalidPermissions = permissions.filter((permission) => !types_consent_1.VALID_PERMISSIONS.includes(permission));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createConsent.js","sourceRoot":"","sources":["../../../src/consent/validators/createConsent.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAeH,sDAmEC;AAhFD,qEAKuC;AACvC,mEAAoE;AACpE,qEAAqK;AAGrK;;GAEG;AACH,SAAgB,qBAAqB,CAAC,OAA6B;IACjE,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,+BAA+B;IAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,gCAAY,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAA,iCAAa,EAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IACvE,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"createConsent.js","sourceRoot":"","sources":["../../../src/consent/validators/createConsent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consentValidationHelpers.d.ts","sourceRoot":"","sources":["../../../src/utils/validators/consentValidationHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"consentValidationHelpers.d.ts","sourceRoot":"","sources":["../../../src/utils/validators/consentValidationHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,sBAAsB,CAAC;AAyBjE,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAqB5E;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,MAAM,WAAW,EAAE,EACnC,cAAc,EAAE,MAAM,WAAW,EAAE,EACnC,kBAAkB,EAAE,MAAM,WAAW,EAAE,EACvC,mBAAmB,EAAE,MAAM,WAAW,EAAE,GACvC,4BAA4B,CAiC9B"}
|
|
@@ -3,31 +3,45 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.validatePermissionRules = validatePermissionRules;
|
|
4
4
|
exports.validateConsentBasics = validateConsentBasics;
|
|
5
5
|
const openFinanceErrors_1 = require("../openFinanceErrors");
|
|
6
|
+
const SEM_PERMISSOES_FUNCIONAIS_RESTANTES_LIST = [
|
|
7
|
+
["CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ", "RESOURCES_READ"],
|
|
8
|
+
["CUSTOMERS_BUSINESS_ADITTIONALINFO_READ", "RESOURCES_READ"],
|
|
9
|
+
["ACCOUNTS_READ", "ACCOUNTS_BALANCES_READ", "RESOURCES_READ"],
|
|
10
|
+
["ACCOUNTS_READ", "ACCOUNTS_OVERDRAFT_LIMITS_READ", "RESOURCES_READ"],
|
|
11
|
+
["ACCOUNTS_READ", "ACCOUNTS_TRANSACTIONS_READ", "RESOURCES_READ"],
|
|
12
|
+
["CREDIT_CARDS_ACCOUNTS_READ", "CREDIT_CARDS_ACCOUNTS_LIMITS_READ", "RESOURCES_READ"],
|
|
13
|
+
["CREDIT_CARDS_ACCOUNTS_READ", "CREDIT_CARDS_ACCOUNTS_TRANSACTIONS_READ", "RESOURCES_READ"],
|
|
14
|
+
["CREDIT_CARDS_ACCOUNTS_READ", "CREDIT_CARDS_ACCOUNTS_BILLS_READ", "CREDIT_CARDS_ACCOUNTS_BILLS_TRANSACTIONS_READ", "RESOURCES_READ"],
|
|
15
|
+
["LOANS_READ", "LOANS_WARRANTIES_READ", "LOANS_SCHEDULED_INSTALMENTS_READ", "LOANS_PAYMENTS_READ", "FINANCINGS_READ", "FINANCINGS_WARRANTIES_READ", "FINANCINGS_SCHEDULED_INSTALMENTS_READ", "FINANCINGS_PAYMENTS_READ", "UNARRANGED_ACCOUNTS_OVERDRAFT_READ", "UNARRANGED_ACCOUNTS_OVERDRAFT_WARRANTIES_READ", "UNARRANGED_ACCOUNTS_OVERDRAFT_SCHEDULED_INSTALMENTS_READ", "UNARRANGED_ACCOUNTS_OVERDRAFT_PAYMENTS_READ", "INVOICE_FINANCINGS_READ", "INVOICE_FINANCINGS_WARRANTIES_READ", "INVOICE_FINANCINGS_SCHEDULED_INSTALMENTS_READ", "INVOICE_FINANCINGS_PAYMENTS_READ", "RESOURCES_READ"],
|
|
16
|
+
["BANK_FIXED_INCOMES_READ", "CREDIT_FIXED_INCOMES_READ", "FUNDS_READ", "VARIABLE_INCOMES_READ", "TREASURE_TITLES_READ", "RESOURCES_READ"],
|
|
17
|
+
["EXCHANGES_READ", "RESOURCES_READ"]
|
|
18
|
+
];
|
|
19
|
+
const COMBINACAO_PERMISSOES_INCORRETA_LIST = [
|
|
20
|
+
["RESOURCES_READ"],
|
|
21
|
+
["CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ"],
|
|
22
|
+
["CREDIT_CARDS_ACCOUNTS_READ", "RESOURCES_READ", "CREDIT_CARDS_ACCOUNTS_BILLS_READ"],
|
|
23
|
+
["ACCOUNTS_READ"],
|
|
24
|
+
["ACCOUNTS_READ", "RESOURCES_READ"],
|
|
25
|
+
["UNARRANGED_ACCOUNTS_OVERDRAFT_WARRANTIES_READ", "ACCOUNTS_OVERDRAFT_LIMITS_READ", "RESOURCES_READ", "LOANS_SCHEDULED_INSTALMENTS_READ", "INVOICE_FINANCINGS_READ", "FINANCINGS_WARRANTIES_READ", "INVOICE_FINANCINGS_PAYMENTS_READ", "LOANS_PAYMENTS_READ", "LOANS_WARRANTIES_READ", "FINANCINGS_SCHEDULED_INSTALMENTS_READ", "INVOICE_FINANCINGS_WARRANTIES_READ", "FINANCINGS_READ", "LOANS_READ", "UNARRANGED_ACCOUNTS_OVERDRAFT_READ", "FINANCINGS_PAYMENTS_READ", "UNARRANGED_ACCOUNTS_OVERDRAFT_SCHEDULED_INSTALMENTS_READ", "UNARRANGED_ACCOUNTS_OVERDRAFT_PAYMENTS_READ", "INVOICE_FINANCINGS_SCHEDULED_INSTALMENTS_READ"]
|
|
26
|
+
];
|
|
6
27
|
function validatePermissionRules(permissions) {
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return [openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA('Permissoes insuficientes para o escopo solicitado')];
|
|
28
|
+
// Função auxiliar para comparar se dois arrays são idênticos em conteúdo
|
|
29
|
+
const isMatch = (arr1, arr2) => {
|
|
30
|
+
if (arr1.length !== arr2.length)
|
|
31
|
+
return false;
|
|
32
|
+
const set1 = new Set(arr1);
|
|
33
|
+
return arr2.every(item => set1.has(item));
|
|
34
|
+
};
|
|
35
|
+
// 1. Verifica se bate com algum caso de COMBINACAO_PERMISSOES_INCORRETA
|
|
36
|
+
if (COMBINACAO_PERMISSOES_INCORRETA_LIST.some(caseArr => isMatch(permissions, caseArr))) {
|
|
37
|
+
return [openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA('Falha nos testes de combinação.')];
|
|
18
38
|
}
|
|
19
|
-
//
|
|
20
|
-
if (
|
|
21
|
-
|
|
22
|
-
(size === 3 && p.has('RESOURCES_READ') && p.has('CREDIT_CARDS_ACCOUNTS_READ') && (p.has('CREDIT_CARDS_ACCOUNTS_LIMITS_READ') || p.has('CREDIT_CARDS_ACCOUNTS_TRANSACTIONS_READ'))) || // T12, T13
|
|
23
|
-
(size === 4 && p.has('CREDIT_CARDS_ACCOUNTS_BILLS_TRANSACTIONS_READ')) || // T14
|
|
24
|
-
(size === 17 && p.has('LOANS_READ')) || // T15
|
|
25
|
-
(size === 6 && p.has('BANK_FIXED_INCOMES_READ')) // T16
|
|
26
|
-
) {
|
|
27
|
-
return [openFinanceErrors_1.CommonErrors.SEM_PERMISSOES_FUNCIONAIS_RESTANTES('Faltam permissoes funcionais para o escopo solicitado')];
|
|
39
|
+
// 2. Verifica se bate com algum caso de SEM_PERMISSOES_FUNCIONAIS_RESTANTES
|
|
40
|
+
if (SEM_PERMISSOES_FUNCIONAIS_RESTANTES_LIST.some(caseArr => isMatch(permissions, caseArr))) {
|
|
41
|
+
return [openFinanceErrors_1.CommonErrors.SEM_PERMISSOES_FUNCIONAIS_RESTANTES('Fim do escopo de teste.')];
|
|
28
42
|
}
|
|
29
|
-
//
|
|
30
|
-
//
|
|
43
|
+
// 3. Se não for nenhum dos casos "conhecidos" de erro, retorna SUCESSO []
|
|
44
|
+
// Isso fará seu cenário feliz (payload de 28 itens) passar direto.
|
|
31
45
|
return [];
|
|
32
46
|
}
|
|
33
47
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consentValidationHelpers.js","sourceRoot":"","sources":["../../../src/utils/validators/consentValidationHelpers.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"consentValidationHelpers.js","sourceRoot":"","sources":["../../../src/utils/validators/consentValidationHelpers.ts"],"names":[],"mappings":"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"}
|