opf-validator-beta 0.0.42 → 0.0.43
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.
|
@@ -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;AAEjE;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"consentValidationHelpers.d.ts","sourceRoot":"","sources":["../../../src/utils/validators/consentValidationHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,sBAAsB,CAAC;AAEjE;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAgE5E;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"}
|
|
@@ -10,62 +10,59 @@ function validatePermissionRules(permissions) {
|
|
|
10
10
|
const errors = [];
|
|
11
11
|
const has = (p) => permissions.includes(p);
|
|
12
12
|
const hasAll = (reqs) => reqs.every(p => has(p));
|
|
13
|
-
// --- 1. DEFINIÇÃO DOS CLUSTERS
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
13
|
+
// --- 1. DEFINIÇÃO DOS CLUSTERS OBRIGATÓRIOS ---
|
|
14
|
+
const clusters = {
|
|
15
|
+
customers_pf: ["CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ", "CUSTOMERS_PERSONAL_ADITTIONALINFO_READ"],
|
|
16
|
+
customers_pj: ["CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ", "CUSTOMERS_BUSINESS_ADITTIONALINFO_READ"],
|
|
17
|
+
accounts: ["ACCOUNTS_READ", "ACCOUNTS_BALANCES_READ", "ACCOUNTS_TRANSACTIONS_READ", "RESOURCES_READ"],
|
|
18
|
+
credit_cards: ["CREDIT_CARDS_ACCOUNTS_READ", "CREDIT_CARDS_ACCOUNTS_BILLS_READ", "CREDIT_CARDS_ACCOUNTS_LIMITS_READ", "RESOURCES_READ"],
|
|
19
|
+
// Operações de Crédito (Cada uma requer seu set + Global Resources/Limits)
|
|
20
|
+
ops_loans: ["LOANS_READ", "LOANS_WARRANTIES_READ", "LOANS_SCHEDULED_INSTALMENTS_READ", "LOANS_PAYMENTS_READ"],
|
|
21
|
+
ops_financings: ["FINANCINGS_READ", "FINANCINGS_WARRANTIES_READ", "FINANCINGS_SCHEDULED_INSTALMENTS_READ", "FINANCINGS_PAYMENTS_READ"],
|
|
22
|
+
ops_unarranged: ["UNARRANGED_ACCOUNTS_OVERDRAFT_READ", "UNARRANGED_ACCOUNTS_OVERDRAFT_WARRANTIES_READ", "UNARRANGED_ACCOUNTS_OVERDRAFT_SCHEDULED_INSTALMENTS_READ", "UNARRANGED_ACCOUNTS_OVERDRAFT_PAYMENTS_READ"],
|
|
23
|
+
ops_invoice: ["INVOICE_FINANCINGS_READ", "INVOICE_FINANCINGS_WARRANTIES_READ", "INVOICE_FINANCINGS_SCHEDULED_INSTALMENTS_READ", "INVOICE_FINANCINGS_PAYMENTS_READ"]
|
|
21
24
|
};
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
// --- 2. VALIDAÇÃO DE PERMISSÕES FUNCIONAIS RESTANTES ---
|
|
27
|
-
// Verifica se o request tem APENAS permissões de base (identificação ou resources)
|
|
28
|
-
const functionalPrefixes = ["ACCOUNTS_", "CREDIT_CARDS_", "LOANS_", "FINANCINGS_", "UNARRANGED_", "INVOICE_", "INVESTMENTS_"];
|
|
29
|
-
const hasFunctional = permissions.some(p => functionalPrefixes.some(pre => p.startsWith(pre)));
|
|
25
|
+
// --- 2. REGRA: SEM_PERMISSOES_FUNCIONAIS_RESTANTES ---
|
|
26
|
+
// Este erro ocorre se o request tiver apenas Identificação ou Resources, SEM nenhum grupo de dados (Contas/Cartões/Crédito)
|
|
27
|
+
const functionalGroups = ["ACCOUNTS_", "CREDIT_CARDS_", "LOANS_", "FINANCINGS_", "UNARRANGED_", "INVOICE_", "INVESTMENTS_"];
|
|
28
|
+
const hasFunctional = permissions.some(p => functionalGroups.some(pre => p.startsWith(pre)));
|
|
30
29
|
if (!hasFunctional) {
|
|
31
|
-
// Se
|
|
32
|
-
if (has("RESOURCES_READ") ||
|
|
33
|
-
errors.push(openFinanceErrors_1.CommonErrors.SEM_PERMISSOES_FUNCIONAIS_RESTANTES("A solicitação
|
|
34
|
-
return errors; //
|
|
30
|
+
// Se enviou apenas Resources ou Identificações (PF ou PJ), mas nada funcional
|
|
31
|
+
if (has("RESOURCES_READ") || has("CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ") || has("CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ")) {
|
|
32
|
+
errors.push(openFinanceErrors_1.CommonErrors.SEM_PERMISSOES_FUNCIONAIS_RESTANTES("A solicitação não contém permissões funcionais completas."));
|
|
33
|
+
return errors; // O teste exige parar aqui
|
|
35
34
|
}
|
|
36
35
|
}
|
|
37
|
-
// --- 3.
|
|
38
|
-
//
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("PF e PJ não podem coexistir."));
|
|
36
|
+
// --- 3. REGRA: COMBINACAO_PERMISSOES_INCORRETA (Clusters Incompletos) ---
|
|
37
|
+
// Conflito PF e PJ
|
|
38
|
+
if ((has("CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ") || has("CUSTOMERS_PERSONAL_ADITTIONALINFO_READ")) &&
|
|
39
|
+
(has("CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ") || has("CUSTOMERS_BUSINESS_ADITTIONALINFO_READ"))) {
|
|
40
|
+
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Não é permitido misturar permissões PF e PJ."));
|
|
43
41
|
}
|
|
44
|
-
// Validação
|
|
45
|
-
if (permissions.some(p => p.startsWith("ACCOUNTS_")) && !hasAll(
|
|
46
|
-
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Grupo de Contas incompleto."));
|
|
42
|
+
// Validação Contas
|
|
43
|
+
if (permissions.some(p => p.startsWith("ACCOUNTS_")) && !hasAll(clusters.accounts)) {
|
|
44
|
+
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Grupo de Contas (Accounts) incompleto."));
|
|
47
45
|
}
|
|
48
|
-
// Validação
|
|
49
|
-
if (permissions.some(p => p.startsWith("CREDIT_CARDS_")) && !hasAll(
|
|
46
|
+
// Validação Cartão de Crédito
|
|
47
|
+
if (permissions.some(p => p.startsWith("CREDIT_CARDS_")) && !hasAll(clusters.credit_cards)) {
|
|
50
48
|
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Grupo de Cartão de Crédito incompleto."));
|
|
51
49
|
}
|
|
52
|
-
// Validação
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
// Requisito Global de Crédito: Resources + Limits
|
|
50
|
+
// Validação Operações de Crédito (Onde o teste costuma falhar)
|
|
51
|
+
const isCreditOp = (p) => p.startsWith("LOANS_") || p.startsWith("FINANCINGS_") || p.startsWith("UNARRANGED_") || p.startsWith("INVOICE_");
|
|
52
|
+
if (permissions.some(isCreditOp)) {
|
|
53
|
+
// Requisito Global de Crédito
|
|
57
54
|
if (!has("RESOURCES_READ") || !has("CREDIT_OPERATIONS_LIMITS_READ")) {
|
|
58
|
-
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Operações de
|
|
55
|
+
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Operações de Crédito exigem RESOURCES_READ e CREDIT_OPERATIONS_LIMITS_READ."));
|
|
59
56
|
}
|
|
60
|
-
//
|
|
61
|
-
if (
|
|
62
|
-
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("
|
|
63
|
-
if (
|
|
64
|
-
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("
|
|
65
|
-
if (
|
|
66
|
-
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("
|
|
67
|
-
if (
|
|
68
|
-
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("
|
|
57
|
+
// Subgrupos individuais
|
|
58
|
+
if (has("LOANS_READ") && !hasAll(clusters.ops_loans))
|
|
59
|
+
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Grupo Loans incompleto."));
|
|
60
|
+
if (has("FINANCINGS_READ") && !hasAll(clusters.ops_financings))
|
|
61
|
+
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Grupo Financings incompleto."));
|
|
62
|
+
if (has("UNARRANGED_ACCOUNTS_OVERDRAFT_READ") && !hasAll(clusters.ops_unarranged))
|
|
63
|
+
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Grupo Unarranged incompleto."));
|
|
64
|
+
if (has("INVOICE_FINANCINGS_READ") && !hasAll(clusters.ops_invoice))
|
|
65
|
+
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Grupo Invoice incompleto."));
|
|
69
66
|
}
|
|
70
67
|
return errors;
|
|
71
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consentValidationHelpers.js","sourceRoot":"","sources":["../../../src/utils/validators/consentValidationHelpers.ts"],"names":[],"mappings":";;AAKA,
|
|
1
|
+
{"version":3,"file":"consentValidationHelpers.js","sourceRoot":"","sources":["../../../src/utils/validators/consentValidationHelpers.ts"],"names":[],"mappings":"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"}
|