@77sol-lab/form-schemas 1.7.0 → 3.0.0
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/{chunk-HMC73HBG.mjs → chunk-4T4DDJJZ.mjs} +7 -7
- package/{chunk-DIYEI2PA.mjs → chunk-65WB3CQB.mjs} +9 -9
- package/{chunk-VP4HT24O.mjs → chunk-6AISIJ3O.mjs} +7 -7
- package/{chunk-LU5ODSGQ.mjs → chunk-7ULQG7YJ.mjs} +9 -9
- package/{chunk-QMODZE4A.mjs → chunk-7VU2KIBV.mjs} +7 -7
- package/chunk-BXLQYGEB.mjs +105 -0
- package/{chunk-VDFDTLU5.mjs → chunk-CGBX6OCD.mjs} +7 -7
- package/{chunk-ENDOIQ32.mjs → chunk-CJSJ3VDW.mjs} +138 -60
- package/{chunk-6ZUOXZY3.mjs → chunk-EG5RVHCZ.mjs} +9 -9
- package/{chunk-5EHEC3RT.mjs → chunk-F4RMWUXJ.mjs} +10 -10
- package/{chunk-KJTTMDZP.mjs → chunk-GBKY6QE3.mjs} +7 -7
- package/{chunk-AM7HTUI3.mjs → chunk-HF7G6PTH.mjs} +9 -9
- package/{chunk-65EE5FW3.mjs → chunk-HX5UJCA2.mjs} +7 -7
- package/{chunk-L3OISOZA.mjs → chunk-HXHJSQ2X.mjs} +9 -9
- package/{chunk-UF45URAJ.mjs → chunk-IVY6IQXZ.mjs} +9 -9
- package/{chunk-FBDTG3WD.mjs → chunk-K3QXEL6M.mjs} +20 -21
- package/{chunk-CPDLICOP.mjs → chunk-LDL7QLPB.mjs} +7 -7
- package/{chunk-ORQ52KPA.mjs → chunk-LRIO6V7H.mjs} +7 -7
- package/{chunk-MM6LQXI6.mjs → chunk-OIGZEDM3.mjs} +7 -7
- package/{chunk-PDBPFNAN.mjs → chunk-OJUTNXHL.mjs} +136 -39
- package/{chunk-KBILM3GO.mjs → chunk-OKAMQBUN.mjs} +7 -7
- package/{chunk-TDL42FZZ.mjs → chunk-PCTF5JYB.mjs} +9 -9
- package/{chunk-2BHUMNK5.mjs → chunk-PCXYLWDD.mjs} +9 -9
- package/chunk-QEPJ2RLU.mjs +18 -0
- package/{chunk-5P6NWFTX.mjs → chunk-QQCSQ3L4.mjs} +10 -10
- package/{chunk-TKHIBI4R.mjs → chunk-R5TJYTTO.mjs} +9 -9
- package/{chunk-U4ZDMJX2.mjs → chunk-T2FBV7WO.mjs} +10 -10
- package/{chunk-RWOX5QO3.mjs → chunk-TNZ33455.mjs} +7 -7
- package/{chunk-Y67MNG2X.mjs → chunk-TWOBBIQC.mjs} +9 -9
- package/{chunk-22SYVROO.mjs → chunk-TZEPVIC4.mjs} +9 -9
- package/{chunk-FIPFWGBQ.mjs → chunk-UK62IINL.mjs} +7 -7
- package/{chunk-BYAXV4TG.mjs → chunk-VTTNXB64.mjs} +7 -7
- package/{chunk-DJDG3UYR.mjs → chunk-VWKF4I2L.mjs} +9 -9
- package/financing/formalization/index.d.cts +4848 -19624
- package/financing/formalization/index.d.ts +4848 -19624
- package/financing/formalization/index.js +516 -278
- package/financing/formalization/index.mjs +33 -33
- package/financing/formalization/schemas/AlfaPFSchema.d.cts +107 -395
- package/financing/formalization/schemas/AlfaPFSchema.d.ts +107 -395
- package/financing/formalization/schemas/AlfaPFSchema.js +127 -47
- package/financing/formalization/schemas/AlfaPFSchema.mjs +3 -3
- package/financing/formalization/schemas/AlfaPJSchema.d.cts +119 -621
- package/financing/formalization/schemas/AlfaPJSchema.d.ts +119 -621
- package/financing/formalization/schemas/AlfaPJSchema.js +188 -46
- package/financing/formalization/schemas/AlfaPJSchema.mjs +2 -2
- package/financing/formalization/schemas/BancoDoBrasilPFSchema.d.cts +107 -395
- package/financing/formalization/schemas/BancoDoBrasilPFSchema.d.ts +107 -395
- package/financing/formalization/schemas/BancoDoBrasilPFSchema.js +127 -47
- package/financing/formalization/schemas/BancoDoBrasilPFSchema.mjs +3 -3
- package/financing/formalization/schemas/BancoDoBrasilPJSchema.d.cts +119 -621
- package/financing/formalization/schemas/BancoDoBrasilPJSchema.d.ts +119 -621
- package/financing/formalization/schemas/BancoDoBrasilPJSchema.js +188 -46
- package/financing/formalization/schemas/BancoDoBrasilPJSchema.mjs +2 -2
- package/financing/formalization/schemas/BtgPFSchema.d.cts +107 -395
- package/financing/formalization/schemas/BtgPFSchema.d.ts +107 -395
- package/financing/formalization/schemas/BtgPFSchema.js +127 -47
- package/financing/formalization/schemas/BtgPFSchema.mjs +3 -3
- package/financing/formalization/schemas/BtgPJSchema.d.cts +147 -747
- package/financing/formalization/schemas/BtgPJSchema.d.ts +147 -747
- package/financing/formalization/schemas/BtgPJSchema.js +193 -47
- package/financing/formalization/schemas/BtgPJSchema.mjs +3 -3
- package/financing/formalization/schemas/BvPFSchema.d.cts +125 -477
- package/financing/formalization/schemas/BvPFSchema.d.ts +125 -477
- package/financing/formalization/schemas/BvPFSchema.js +129 -49
- package/financing/formalization/schemas/BvPFSchema.mjs +3 -3
- package/financing/formalization/schemas/BvPJSchema.d.cts +149 -819
- package/financing/formalization/schemas/BvPJSchema.d.ts +149 -819
- package/financing/formalization/schemas/BvPJSchema.js +193 -47
- package/financing/formalization/schemas/BvPJSchema.mjs +3 -3
- package/financing/formalization/schemas/CaixaEconomicaFederalPFSchema.d.cts +107 -395
- package/financing/formalization/schemas/CaixaEconomicaFederalPFSchema.d.ts +107 -395
- package/financing/formalization/schemas/CaixaEconomicaFederalPFSchema.js +127 -47
- package/financing/formalization/schemas/CaixaEconomicaFederalPFSchema.mjs +3 -3
- package/financing/formalization/schemas/CaixaEconomicaFederalPJSchema.d.cts +119 -621
- package/financing/formalization/schemas/CaixaEconomicaFederalPJSchema.d.ts +119 -621
- package/financing/formalization/schemas/CaixaEconomicaFederalPJSchema.js +188 -46
- package/financing/formalization/schemas/CaixaEconomicaFederalPJSchema.mjs +2 -2
- package/financing/formalization/schemas/CashMePFSchema.d.cts +107 -395
- package/financing/formalization/schemas/CashMePFSchema.d.ts +107 -395
- package/financing/formalization/schemas/CashMePFSchema.js +127 -47
- package/financing/formalization/schemas/CashMePFSchema.mjs +3 -3
- package/financing/formalization/schemas/CashMePJSchema.d.cts +119 -621
- package/financing/formalization/schemas/CashMePJSchema.d.ts +119 -621
- package/financing/formalization/schemas/CashMePJSchema.js +188 -46
- package/financing/formalization/schemas/CashMePJSchema.mjs +2 -2
- package/financing/formalization/schemas/Credito77PFSchema.d.cts +107 -395
- package/financing/formalization/schemas/Credito77PFSchema.d.ts +107 -395
- package/financing/formalization/schemas/Credito77PFSchema.js +127 -47
- package/financing/formalization/schemas/Credito77PFSchema.mjs +3 -3
- package/financing/formalization/schemas/Credito77PJSchema.d.cts +119 -621
- package/financing/formalization/schemas/Credito77PJSchema.d.ts +119 -621
- package/financing/formalization/schemas/Credito77PJSchema.js +188 -46
- package/financing/formalization/schemas/Credito77PJSchema.mjs +2 -2
- package/financing/formalization/schemas/EosPFSchema.d.cts +107 -395
- package/financing/formalization/schemas/EosPFSchema.d.ts +107 -395
- package/financing/formalization/schemas/EosPFSchema.js +127 -47
- package/financing/formalization/schemas/EosPFSchema.mjs +3 -3
- package/financing/formalization/schemas/EosPJSchema.d.cts +119 -621
- package/financing/formalization/schemas/EosPJSchema.d.ts +119 -621
- package/financing/formalization/schemas/EosPJSchema.js +188 -46
- package/financing/formalization/schemas/EosPJSchema.mjs +2 -2
- package/financing/formalization/schemas/HdtEnergyPFSchema.d.cts +107 -395
- package/financing/formalization/schemas/HdtEnergyPFSchema.d.ts +107 -395
- package/financing/formalization/schemas/HdtEnergyPFSchema.js +127 -47
- package/financing/formalization/schemas/HdtEnergyPFSchema.mjs +3 -3
- package/financing/formalization/schemas/HdtEnergyPJSchema.d.cts +119 -621
- package/financing/formalization/schemas/HdtEnergyPJSchema.d.ts +119 -621
- package/financing/formalization/schemas/HdtEnergyPJSchema.js +188 -46
- package/financing/formalization/schemas/HdtEnergyPJSchema.mjs +2 -2
- package/financing/formalization/schemas/LosangoPFSchema.d.cts +107 -395
- package/financing/formalization/schemas/LosangoPFSchema.d.ts +107 -395
- package/financing/formalization/schemas/LosangoPFSchema.js +127 -47
- package/financing/formalization/schemas/LosangoPFSchema.mjs +3 -3
- package/financing/formalization/schemas/LosangoPJSchema.d.cts +119 -621
- package/financing/formalization/schemas/LosangoPJSchema.d.ts +119 -621
- package/financing/formalization/schemas/LosangoPJSchema.js +188 -46
- package/financing/formalization/schemas/LosangoPJSchema.mjs +2 -2
- package/financing/formalization/schemas/SafraPFSchema.d.cts +107 -395
- package/financing/formalization/schemas/SafraPFSchema.d.ts +107 -395
- package/financing/formalization/schemas/SafraPFSchema.js +127 -47
- package/financing/formalization/schemas/SafraPFSchema.mjs +3 -3
- package/financing/formalization/schemas/SafraPJSchema.d.cts +119 -621
- package/financing/formalization/schemas/SafraPJSchema.d.ts +119 -621
- package/financing/formalization/schemas/SafraPJSchema.js +188 -46
- package/financing/formalization/schemas/SafraPJSchema.mjs +2 -2
- package/financing/formalization/schemas/SantanderPFSchema.d.cts +107 -395
- package/financing/formalization/schemas/SantanderPFSchema.d.ts +107 -395
- package/financing/formalization/schemas/SantanderPFSchema.js +127 -47
- package/financing/formalization/schemas/SantanderPFSchema.mjs +3 -3
- package/financing/formalization/schemas/SantanderPJSchema.d.cts +119 -621
- package/financing/formalization/schemas/SantanderPJSchema.d.ts +119 -621
- package/financing/formalization/schemas/SantanderPJSchema.js +188 -46
- package/financing/formalization/schemas/SantanderPJSchema.mjs +2 -2
- package/financing/formalization/schemas/SolAgoraPFSchema.d.cts +107 -395
- package/financing/formalization/schemas/SolAgoraPFSchema.d.ts +107 -395
- package/financing/formalization/schemas/SolAgoraPFSchema.js +127 -47
- package/financing/formalization/schemas/SolAgoraPFSchema.mjs +3 -3
- package/financing/formalization/schemas/SolAgoraPJSchema.d.cts +145 -725
- package/financing/formalization/schemas/SolAgoraPJSchema.d.ts +145 -725
- package/financing/formalization/schemas/SolAgoraPJSchema.js +193 -47
- package/financing/formalization/schemas/SolAgoraPJSchema.mjs +3 -3
- package/financing/formalization/schemas/SolfacilPFSchema.d.cts +107 -395
- package/financing/formalization/schemas/SolfacilPFSchema.d.ts +107 -395
- package/financing/formalization/schemas/SolfacilPFSchema.js +127 -47
- package/financing/formalization/schemas/SolfacilPFSchema.mjs +3 -3
- package/financing/formalization/schemas/SolfacilPJSchema.d.cts +131 -679
- package/financing/formalization/schemas/SolfacilPJSchema.d.ts +131 -679
- package/financing/formalization/schemas/SolfacilPJSchema.js +188 -46
- package/financing/formalization/schemas/SolfacilPJSchema.mjs +2 -2
- package/financing/formalization/schemas/UnifiedPFSchema.d.cts +185 -557
- package/financing/formalization/schemas/UnifiedPFSchema.d.ts +185 -557
- package/financing/formalization/schemas/UnifiedPFSchema.js +141 -61
- package/financing/formalization/schemas/UnifiedPFSchema.mjs +3 -3
- package/financing/formalization/schemas/UnifiedPJSchema.d.cts +265 -1269
- package/financing/formalization/schemas/UnifiedPJSchema.d.ts +265 -1269
- package/financing/formalization/schemas/UnifiedPJSchema.js +238 -92
- package/financing/formalization/schemas/UnifiedPJSchema.mjs +3 -3
- package/index.d.cts +2 -1
- package/index.d.ts +2 -1
- package/index.js +516 -278
- package/index.mjs +33 -33
- package/package.json +2 -2
- package/chunk-4PZYGTUU.mjs +0 -105
- package/chunk-JZ7DY7SU.mjs +0 -13
|
@@ -2,48 +2,80 @@
|
|
|
2
2
|
|
|
3
3
|
var zod = require('zod');
|
|
4
4
|
|
|
5
|
-
// src/
|
|
5
|
+
// src/shared/fields/primitives.ts
|
|
6
6
|
var REQUIRED_MESSAGE = "Campo obrigat\xF3rio";
|
|
7
|
-
var REQUIRED_STRING_PARAMS = {
|
|
8
|
-
required_error: REQUIRED_MESSAGE,
|
|
9
|
-
invalid_type_error: REQUIRED_MESSAGE
|
|
10
|
-
};
|
|
11
7
|
function requiredString() {
|
|
12
|
-
return zod.z.string(
|
|
8
|
+
return zod.z.string({ error: REQUIRED_MESSAGE });
|
|
13
9
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return
|
|
10
|
+
var DEFAULT_TEXT_MAX_LENGTH = 255;
|
|
11
|
+
function textField(maxLength = DEFAULT_TEXT_MAX_LENGTH) {
|
|
12
|
+
return requiredString().trim().min(1, REQUIRED_MESSAGE).max(maxLength, `M\xE1ximo ${maxLength} caracteres`);
|
|
17
13
|
}
|
|
18
|
-
|
|
19
|
-
zod.z.number({
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
14
|
+
function requiredNumber(invalidTypeMessage) {
|
|
15
|
+
return zod.z.number({
|
|
16
|
+
error: (issue) => issue.input === void 0 ? REQUIRED_MESSAGE : invalidTypeMessage
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
requiredNumber("Valor num\xE9rico inv\xE1lido").nonnegative(
|
|
20
|
+
"Valor n\xE3o pode ser negativo"
|
|
21
|
+
);
|
|
22
|
+
requiredNumber("Valor num\xE9rico inv\xE1lido").int("Deve ser um n\xFAmero inteiro").nonnegative("Valor n\xE3o pode ser negativo");
|
|
23
|
+
function optionalField(schema) {
|
|
24
|
+
return zod.z.preprocess(
|
|
25
|
+
(value) => typeof value === "string" && value.trim() === "" ? void 0 : value,
|
|
26
|
+
schema.optional()
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
function unrecognizedKeysMessage(keys) {
|
|
30
|
+
const list = keys.map((key) => `"${key}"`).join(", ");
|
|
31
|
+
return keys.length === 1 ? `Campo n\xE3o reconhecido: ${list}` : `Campos n\xE3o reconhecidos: ${list}`;
|
|
32
|
+
}
|
|
33
|
+
function requiredObject(shape) {
|
|
34
|
+
return zod.z.object(shape, {
|
|
35
|
+
error: (issue) => {
|
|
36
|
+
if (issue.code === "invalid_type") {
|
|
37
|
+
return REQUIRED_MESSAGE;
|
|
38
|
+
}
|
|
39
|
+
if (issue.code === "unrecognized_keys") {
|
|
40
|
+
return unrecognizedKeysMessage(issue.keys);
|
|
25
41
|
}
|
|
26
|
-
return
|
|
42
|
+
return void 0;
|
|
27
43
|
}
|
|
28
44
|
});
|
|
29
45
|
}
|
|
46
|
+
function enumField(values) {
|
|
47
|
+
return zod.z.enum(values, {
|
|
48
|
+
// No zod 4 todo input fora da lista (inclusive undefined/null) gera um único
|
|
49
|
+
// issue `invalid_value`. Tratamos ausência, tipo inválido e string vazia
|
|
50
|
+
// (select não preenchido) como "obrigatório"; um valor de fato inválido cai
|
|
51
|
+
// na mensagem padrão do zod (retornar undefined delega ao error map default).
|
|
52
|
+
error: (issue) => typeof issue.input !== "string" || issue.input === "" ? REQUIRED_MESSAGE : void 0
|
|
53
|
+
});
|
|
54
|
+
}
|
|
30
55
|
var MAX_UPLOAD_BYTES = 5 * 1024 * 1024;
|
|
31
56
|
var ACCEPTED_UPLOAD_MIME = ["image/jpeg", "image/png", "application/pdf"];
|
|
32
|
-
var
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
)
|
|
57
|
+
var UPLOAD_URL_PROTOCOL = /^https$/;
|
|
58
|
+
var UPLOAD_URL_HOSTNAME = /^(?!localhost$)(?!(\d{1,3}\.){3}\d{1,3}$)[a-z0-9.-]+$/i;
|
|
59
|
+
var fileUploadField = requiredObject({
|
|
60
|
+
url: optionalField(
|
|
61
|
+
zod.z.url({
|
|
62
|
+
protocol: UPLOAD_URL_PROTOCOL,
|
|
63
|
+
hostname: UPLOAD_URL_HOSTNAME,
|
|
64
|
+
error: "URL do arquivo inv\xE1lida"
|
|
65
|
+
})
|
|
66
|
+
),
|
|
67
|
+
mime: zod.z.enum(ACCEPTED_UPLOAD_MIME, { error: "Formato deve ser JPEG, PNG ou PDF" }),
|
|
68
|
+
sizeBytes: requiredNumber("Tamanho do arquivo inv\xE1lido").int("Tamanho do arquivo deve ser um n\xFAmero inteiro").positive("Tamanho do arquivo deve ser positivo").max(MAX_UPLOAD_BYTES, "Arquivo deve ter no m\xE1ximo 5MB")
|
|
69
|
+
});
|
|
42
70
|
|
|
43
71
|
// src/shared/enums/document-type.ts
|
|
44
72
|
var DocumentTypeEnum = enumField([
|
|
45
73
|
"documento_de_identidade",
|
|
46
|
-
"carteira_nacional_de_habilita\xE7\xE3o"
|
|
74
|
+
"carteira_nacional_de_habilita\xE7\xE3o",
|
|
75
|
+
// Exigido pela RN-015 para nacionalidade estrangeira. Sem este membro a
|
|
76
|
+
// regra seria insatisfazível: todo schema é .strict() com type_doc
|
|
77
|
+
// restrito a este enum.
|
|
78
|
+
"registro_de_estrangeiro"
|
|
47
79
|
]);
|
|
48
80
|
|
|
49
81
|
// src/shared/enums/nationality.ts
|
|
@@ -117,7 +149,10 @@ var PATTERNS = {
|
|
|
117
149
|
cep: /^\d{8}$/,
|
|
118
150
|
phoneBR: /^\d{11}$/,
|
|
119
151
|
email: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
|
|
120
|
-
dateDMY: /^\d{2}\/\d{2}\/\d{4}
|
|
152
|
+
dateDMY: /^\d{2}\/\d{2}\/\d{4}$/,
|
|
153
|
+
// Formato do RNE, exigido pela RN-015 para nacionalidade estrangeira.
|
|
154
|
+
rneNumber: /^[A-Za-z0-9]+$/
|
|
155
|
+
};
|
|
121
156
|
|
|
122
157
|
// src/shared/regex/validators.ts
|
|
123
158
|
function onlyDigits(value) {
|
|
@@ -234,22 +269,22 @@ function parseBRLCurrency(value) {
|
|
|
234
269
|
if (typeof value !== "string") {
|
|
235
270
|
return value;
|
|
236
271
|
}
|
|
237
|
-
const
|
|
238
|
-
if (
|
|
272
|
+
const normalized = value.replace(/R\$/gi, "").replace(/\s/g, "").replace(/\./g, "").replace(",", ".");
|
|
273
|
+
if (normalized === "") {
|
|
239
274
|
return void 0;
|
|
240
275
|
}
|
|
241
|
-
const normalized = trimmed.replace(/R\$/gi, "").replace(/\s/g, "").replace(/\./g, "").replace(",", ".");
|
|
242
276
|
const parsed = Number(normalized);
|
|
243
277
|
return Number.isNaN(parsed) ? value : parsed;
|
|
244
278
|
}
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
);
|
|
249
|
-
zod.z.
|
|
279
|
+
function brlAmount() {
|
|
280
|
+
return requiredNumber("Valor monet\xE1rio inv\xE1lido").positive("Valor deve ser positivo");
|
|
281
|
+
}
|
|
282
|
+
var currencySchema = zod.z.preprocess(parseBRLCurrency, brlAmount());
|
|
283
|
+
zod.z.preprocess(parseBRLCurrency, brlAmount().optional());
|
|
284
|
+
requiredNumber("Valor num\xE9rico inv\xE1lido").int("Deve ser um n\xFAmero inteiro").min(1, "M\xEDnimo 1").max(28, "M\xE1ximo 28");
|
|
250
285
|
var formalizationExtras = {
|
|
251
286
|
voucher_local_installation_address: fileUploadField,
|
|
252
|
-
proof_kinship_type: ProofKinshipTypeEnum
|
|
287
|
+
proof_kinship_type: optionalField(ProofKinshipTypeEnum),
|
|
253
288
|
proof_kinship: fileUploadField.optional(),
|
|
254
289
|
document_front_upload: fileUploadField,
|
|
255
290
|
document_back_upload: fileUploadField,
|
|
@@ -284,7 +319,7 @@ function applyPartnerRefinement(data, ctx) {
|
|
|
284
319
|
const isEmpty = value === void 0 || value === null || typeof value === "string" && value.trim().length === 0;
|
|
285
320
|
if (isEmpty) {
|
|
286
321
|
ctx.addIssue({
|
|
287
|
-
code:
|
|
322
|
+
code: "custom",
|
|
288
323
|
path: [field],
|
|
289
324
|
message: "Campo obrigat\xF3rio para o estado civil informado"
|
|
290
325
|
});
|
|
@@ -298,25 +333,54 @@ function applyCommonRefinements(data, ctx) {
|
|
|
298
333
|
}
|
|
299
334
|
if (!data.proof_kinship_type) {
|
|
300
335
|
ctx.addIssue({
|
|
301
|
-
code:
|
|
336
|
+
code: "custom",
|
|
302
337
|
path: ["proof_kinship_type"],
|
|
303
338
|
message: "Tipo de comprovante \xE9 obrigat\xF3rio quando a conta est\xE1 em nome de terceiro"
|
|
304
339
|
});
|
|
305
340
|
}
|
|
306
341
|
if (!data.proof_kinship) {
|
|
307
342
|
ctx.addIssue({
|
|
308
|
-
code:
|
|
343
|
+
code: "custom",
|
|
309
344
|
path: ["proof_kinship"],
|
|
310
345
|
message: "Documento de v\xEDnculo \xE9 obrigat\xF3rio quando a conta est\xE1 em nome de terceiro"
|
|
311
346
|
});
|
|
312
347
|
}
|
|
313
348
|
}
|
|
349
|
+
var FOREIGN_DOCUMENT_TYPE = "registro_de_estrangeiro";
|
|
350
|
+
function applyForeignDocumentRefinement(data, ctx) {
|
|
351
|
+
const nationality = data.nationality;
|
|
352
|
+
const isForeign = typeof nationality === "string" && nationality.toLowerCase() !== NATIONALITY_BRAZIL;
|
|
353
|
+
if (!isForeign || !("type_doc" in data)) {
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
356
|
+
if (data.type_doc !== FOREIGN_DOCUMENT_TYPE) {
|
|
357
|
+
ctx.addIssue({
|
|
358
|
+
code: "custom",
|
|
359
|
+
path: ["type_doc"],
|
|
360
|
+
message: "Para nacionalidade estrangeira, o documento deve ser Registro de Estrangeiro (RNE)"
|
|
361
|
+
});
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
if (typeof data.doc === "string" && !PATTERNS.rneNumber.test(data.doc)) {
|
|
365
|
+
ctx.addIssue({
|
|
366
|
+
code: "custom",
|
|
367
|
+
path: ["doc"],
|
|
368
|
+
message: "RNE deve conter apenas letras e n\xFAmeros"
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
function isRecord(data) {
|
|
373
|
+
return typeof data === "object" && data !== null;
|
|
374
|
+
}
|
|
314
375
|
function applyPfRefinements(data, ctx) {
|
|
376
|
+
if (!isRecord(data)) {
|
|
377
|
+
return;
|
|
378
|
+
}
|
|
315
379
|
applyCommonRefinements(data, ctx);
|
|
316
380
|
applyPartnerRefinement(data, ctx);
|
|
317
381
|
if ("nature_of_occupation" in data && typeof data.nature_of_occupation === "string" && OCCUPATIONS_REQUIRING_CNPJ.includes(data.nature_of_occupation) && !data.cnpj_proprietary) {
|
|
318
382
|
ctx.addIssue({
|
|
319
|
-
code:
|
|
383
|
+
code: "custom",
|
|
320
384
|
path: ["cnpj_proprietary"],
|
|
321
385
|
message: "CNPJ do propriet\xE1rio \xE9 obrigat\xF3rio para esta ocupa\xE7\xE3o"
|
|
322
386
|
});
|
|
@@ -325,16 +389,32 @@ function applyPfRefinements(data, ctx) {
|
|
|
325
389
|
const years = yearsSinceDMY(data.doc_issue_date);
|
|
326
390
|
if (years !== null && years > RG_MAX_EMISSION_YEARS) {
|
|
327
391
|
ctx.addIssue({
|
|
328
|
-
code:
|
|
392
|
+
code: "custom",
|
|
329
393
|
path: ["doc_issue_date"],
|
|
330
394
|
message: `RG deve ter no m\xE1ximo ${RG_MAX_EMISSION_YEARS} anos de emiss\xE3o`
|
|
331
395
|
});
|
|
332
396
|
}
|
|
333
397
|
}
|
|
398
|
+
applyForeignDocumentRefinement(data, ctx);
|
|
334
399
|
}
|
|
400
|
+
function applyPjRefinements(data, ctx) {
|
|
401
|
+
if (!isRecord(data)) {
|
|
402
|
+
return;
|
|
403
|
+
}
|
|
404
|
+
applyCommonRefinements(data, ctx);
|
|
405
|
+
}
|
|
406
|
+
function onlyUnknownKeysAborted(payload) {
|
|
407
|
+
return payload.aborted !== true && !payload.issues.some((issue) => issue.continue !== true && issue.code !== "unrecognized_keys");
|
|
408
|
+
}
|
|
409
|
+
var pfRefinement = zod.z.superRefine(applyPfRefinements, {
|
|
410
|
+
when: onlyUnknownKeysAborted
|
|
411
|
+
});
|
|
412
|
+
zod.z.superRefine(applyPjRefinements, {
|
|
413
|
+
when: onlyUnknownKeysAborted
|
|
414
|
+
});
|
|
335
415
|
|
|
336
416
|
// src/domains/financing/formalization/schemas/Credito77PFSchema.ts
|
|
337
|
-
var credito77PfObject =
|
|
417
|
+
var credito77PfObject = requiredObject({
|
|
338
418
|
...formalizationExtras,
|
|
339
419
|
name: textField(),
|
|
340
420
|
cep: cepSchema,
|
|
@@ -343,12 +423,12 @@ var credito77PfObject = zod.z.object({
|
|
|
343
423
|
birth_date: birthDateSchema,
|
|
344
424
|
number: textField(),
|
|
345
425
|
sex: SexEnum,
|
|
346
|
-
complement: textField(15)
|
|
426
|
+
complement: optionalField(textField(15)),
|
|
347
427
|
mother_name: textField(),
|
|
348
428
|
district: textField(),
|
|
349
429
|
energy_account_in_requester_name: textField(),
|
|
350
430
|
city: textField(),
|
|
351
|
-
energy_bill_owner_document: cpfCnpjSchema
|
|
431
|
+
energy_bill_owner_document: optionalField(cpfCnpjSchema),
|
|
352
432
|
state: UfEnum,
|
|
353
433
|
nationality: NationalityEnum.default(NATIONALITY_BRAZIL),
|
|
354
434
|
cellphone: phoneBRSchema,
|
|
@@ -360,7 +440,7 @@ var credito77PfObject = zod.z.object({
|
|
|
360
440
|
issuing_body: textField(6),
|
|
361
441
|
doc_issue_date: issueDateSchema
|
|
362
442
|
});
|
|
363
|
-
var credito77PfSchema = credito77PfObject.strict().
|
|
443
|
+
var credito77PfSchema = credito77PfObject.strict().check(pfRefinement);
|
|
364
444
|
|
|
365
445
|
exports.credito77PfObject = credito77PfObject;
|
|
366
446
|
exports.credito77PfSchema = credito77PfSchema;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { credito77PfObject, credito77PfSchema } from '../../../chunk-
|
|
2
|
-
import '../../../chunk-
|
|
3
|
-
import '../../../chunk-
|
|
1
|
+
export { credito77PfObject, credito77PfSchema } from '../../../chunk-GBKY6QE3.mjs';
|
|
2
|
+
import '../../../chunk-QEPJ2RLU.mjs';
|
|
3
|
+
import '../../../chunk-CJSJ3VDW.mjs';
|