opf-validator-beta 0.0.33 → 0.0.35

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":"openFinanceErrors.d.ts","sourceRoot":"","sources":["../../src/utils/openFinanceErrors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAiB7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BpC,CAAC;AAEF;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,WAAW,CAMb;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAgD3D;AAED;;GAEG;AACH,eAAO,MAAM,YAAY;yCACc,MAAM;8CAMD,MAAM;oCAMhB,MAAM,UAAU,MAAM;mDAMP,MAAM;4CAOb,MAAM,UAAU,MAAM;;4CActB,MAAM;;+BAcnB,MAAM;CAMlC,CAAC"}
1
+ {"version":3,"file":"openFinanceErrors.d.ts","sourceRoot":"","sources":["../../src/utils/openFinanceErrors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAiB7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BpC,CAAC;AAEF;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,WAAW,CAMb;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CA+C3D;AAED;;GAEG;AACH,eAAO,MAAM,YAAY;yCACc,MAAM;8CAMD,MAAM;oCAMhB,MAAM,UAAU,MAAM;mDAMP,MAAM;4CAOb,MAAM,UAAU,MAAM;;4CActB,MAAM;;+BAcnB,MAAM;CAMlC,CAAC"}
@@ -104,7 +104,6 @@ function getStatusCode(errors) {
104
104
  }
105
105
  // 422: Unprocessable Entity - erros sintáticos e semânticos previstos
106
106
  const unprocessableErrorCodes = new Set([
107
- 'PARAMETRO_INVALIDO',
108
107
  'PARAMETRO_NAO_INFORMADO',
109
108
  'DETALHE_PAGAMENTO_INVALIDO',
110
109
  'PAGAMENTO_DIVERGENTE_CONSENTIMENTO',
@@ -1 +1 @@
1
- {"version":3,"file":"openFinanceErrors.js","sourceRoot":"","sources":["../../src/utils/openFinanceErrors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openFinanceErrors.js","sourceRoot":"","sources":["../../src/utils/openFinanceErrors.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;AAEjE;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAsD5E;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"}
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,CA2D5E;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"}
@@ -8,46 +8,52 @@ const openFinanceErrors_1 = require("../openFinanceErrors");
8
8
  */
9
9
  function validatePermissionRules(permissions) {
10
10
  const errors = [];
11
- // Helper para verificar se contém TODAS de um conjunto
12
- const hasAll = (required) => required.every(p => permissions.includes(p));
13
- // Helper para verificar se contém AO MENOS UMA de um conjunto
14
- const hasAny = (set) => set.some(p => permissions.includes(p));
15
- // 1. Regra: RESOURCES_READ, CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ, CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ nunca pode estar sozinha
16
- if (permissions.length === 1 &&
17
- (permissions.includes("RESOURCES_READ") ||
18
- permissions.includes("CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ") ||
19
- permissions.includes("CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ"))) {
20
- errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("A permissão RESOURCES_READ não pode ser informada isoladamente."));
11
+ const has = (p) => permissions.includes(p);
12
+ const hasAll = (required) => required.every(p => has(p));
13
+ // 1. Regra: RESOURCES_READ ou IDENTIFICATIONS isoladas
14
+ const identificationPerms = [
15
+ "CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ",
16
+ "CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ"
17
+ ];
18
+ if (permissions.length === 1 && (has("RESOURCES_READ") || identificationPerms.some(has))) {
19
+ errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Permissões de recursos ou identificação não podem ser informadas isoladamente."));
21
20
  }
22
21
  // 2. Regra: PF e PJ não podem coexistir
23
- const personalPerms = ["CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ", "CUSTOMERS_PERSONAL_ADITTIONALINFO_READ"];
24
- const businessPerms = ["CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ", "CUSTOMERS_BUSINESS_ADITTIONALINFO_READ"];
25
- if (hasAny(personalPerms) && hasAny(businessPerms)) {
26
- errors.push(openFinanceErrors_1.CommonErrors.PARAMETRO_INVALIDO_PF_PJ_EM_CONJUNTO("Permissões de clientes PF e PJ não podem ser informadas em conjunto."));
22
+ const hasPersonal = has("CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ") || has("CUSTOMERS_PERSONAL_ADITTIONALINFO_READ");
23
+ const hasBusiness = has("CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ") || has("CUSTOMERS_BUSINESS_ADITTIONALINFO_READ");
24
+ if (hasPersonal && hasBusiness) {
25
+ errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Permissões de clientes PF e PJ não podem ser informadas em conjunto."));
27
26
  }
28
- // 3. Regra: Grupos de Identificação de Clientes (Devem vir em pares se houver ADITTIONALINFO)
29
- // Mas o teste pede erro se houver APENAS a identificação sem o restante do grupo básico (Resources + Identificação)
30
- if (permissions.includes("CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ") && !permissions.includes("RESOURCES_READ")) {
31
- errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Identificação de clientes exige RESOURCES_READ."));
27
+ // 3. Cluster: Contas (ACCOUNTS) - Requer 4 permissões específicas
28
+ const accountsCluster = ["ACCOUNTS_READ", "ACCOUNTS_BALANCES_READ", "ACCOUNTS_TRANSACTIONS_READ", "RESOURCES_READ"];
29
+ if (permissions.some(p => p.startsWith("ACCOUNTS_")) && !hasAll(accountsCluster)) {
30
+ errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Para Contas, é necessário o cluster completo: READ, BALANCES, TRANSACTIONS e RESOURCES."));
32
31
  }
33
- // 4. Grupo: Cartão de Crédito (Cluster obrigatório)
32
+ // 4. Cluster: Cartão de Crédito (CREDIT_CARDS) - Requer 4 permissões específicas
34
33
  const creditCardCluster = ["CREDIT_CARDS_ACCOUNTS_READ", "CREDIT_CARDS_ACCOUNTS_BILLS_READ", "CREDIT_CARDS_ACCOUNTS_LIMITS_READ", "RESOURCES_READ"];
35
- if (hasAny(["CREDIT_CARDS_ACCOUNTS_READ", "CREDIT_CARDS_ACCOUNTS_BILLS_READ"]) && !hasAll(creditCardCluster)) {
36
- errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Para Cartão de Crédito, deve-se informar o cluster completo: ACCOUNTS, BILLS, LIMITS e RESOURCES."));
37
- }
38
- // 5. Grupo: Contas (Cluster: ACCOUNTS_READ, ACCOUNTS_BALANCES_READ, ACCOUNTS_TRANSACTIONS_READ, RESOURCES_READ)
39
- const accountsCluster = ["ACCOUNTS_READ", "ACCOUNTS_BALANCES_READ", "ACCOUNTS_TRANSACTIONS_READ", "RESOURCES_READ"];
40
- if (hasAny(["ACCOUNTS_READ", "ACCOUNTS_BALANCES_READ", "ACCOUNTS_TRANSACTIONS_READ"]) && !hasAll(accountsCluster)) {
41
- errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Para Contas, deve-se informar o cluster completo: READ, BALANCES, TRANSACTIONS e RESOURCES."));
34
+ if (permissions.some(p => p.startsWith("CREDIT_CARDS_")) && !hasAll(creditCardCluster)) {
35
+ errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Para Cartão de Crédito, é necessário o cluster completo: ACCOUNTS, BILLS, LIMITS e RESOURCES."));
42
36
  }
43
- // 6. Grupo: Operações de Crédito (Cluster massivo)
44
- // Se tiver LOANS, FINANCINGS, UNARRANGED ou INVOICE, deve ter RESOURCES_READ
37
+ // 5. Cluster: Operações de Crédito (O ponto onde estava dando erro no teste)
45
38
  const creditOpsPrefixes = ["LOANS_", "FINANCINGS_", "UNARRANGED_ACCOUNTS_OVERDRAFT_", "INVOICE_FINANCINGS_"];
46
- const hasCreditOps = permissions.some(p => creditOpsPrefixes.some(prefix => p.startsWith(prefix)));
47
- if (hasCreditOps && !permissions.includes("RESOURCES_READ")) {
48
- errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Operações de Crédito exigem RESOURCES_READ."));
39
+ const hasAnyCreditOp = permissions.some(p => creditOpsPrefixes.some(pre => p.startsWith(pre)));
40
+ if (hasAnyCreditOp) {
41
+ // Regra A: Se houver qualquer operação de crédito, CREDIT_OPERATIONS_LIMITS_READ é obrigatória
42
+ if (!has("CREDIT_OPERATIONS_LIMITS_READ") || !has("RESOURCES_READ")) {
43
+ errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Operações de Crédito exigem RESOURCES_READ e CREDIT_OPERATIONS_LIMITS_READ."));
44
+ }
45
+ // Regra B: Cada subgrupo deve estar completo (READ, WARRANTIES, SCHEDULED, PAYMENTS)
46
+ const checkSubGroup = (prefix, label) => {
47
+ const subGroup = [`${prefix}READ`, `${prefix}WARRANTIES_READ`, `${prefix}SCHEDULED_INSTALMENTS_READ`, `${prefix}PAYMENTS_READ`];
48
+ if (permissions.some(p => p.startsWith(prefix)) && !subGroup.every(p => has(p))) {
49
+ errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA(`O grupo de ${label} está incompleto.`));
50
+ }
51
+ };
52
+ checkSubGroup("LOANS_", "Empréstimos");
53
+ checkSubGroup("FINANCINGS_", "Financiamentos");
54
+ checkSubGroup("UNARRANGED_ACCOUNTS_OVERDRAFT_", "Adiantamento a Depositante");
55
+ checkSubGroup("INVOICE_FINANCINGS_", "Direitos Creditórios Descontados");
49
56
  }
50
- console.log(errors);
51
57
  return errors;
52
58
  }
53
59
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"consentValidationHelpers.js","sourceRoot":"","sources":["../../../src/utils/validators/consentValidationHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consentValidationHelpers.js","sourceRoot":"","sources":["../../../src/utils/validators/consentValidationHelpers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opf-validator-beta",
3
- "version": "0.0.33",
3
+ "version": "0.0.35",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [