@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,43 +2,76 @@
|
|
|
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 requiredArray(element) {
|
|
47
|
+
return zod.z.array(element, {
|
|
48
|
+
error: (issue) => issue.code === "invalid_type" ? REQUIRED_MESSAGE : void 0
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
function enumField(values) {
|
|
52
|
+
return zod.z.enum(values, {
|
|
53
|
+
// No zod 4 todo input fora da lista (inclusive undefined/null) gera um único
|
|
54
|
+
// issue `invalid_value`. Tratamos ausência, tipo inválido e string vazia
|
|
55
|
+
// (select não preenchido) como "obrigatório"; um valor de fato inválido cai
|
|
56
|
+
// na mensagem padrão do zod (retornar undefined delega ao error map default).
|
|
57
|
+
error: (issue) => typeof issue.input !== "string" || issue.input === "" ? REQUIRED_MESSAGE : void 0
|
|
58
|
+
});
|
|
59
|
+
}
|
|
30
60
|
var MAX_UPLOAD_BYTES = 5 * 1024 * 1024;
|
|
31
61
|
var ACCEPTED_UPLOAD_MIME = ["image/jpeg", "image/png", "application/pdf"];
|
|
32
|
-
var
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
)
|
|
62
|
+
var UPLOAD_URL_PROTOCOL = /^https$/;
|
|
63
|
+
var UPLOAD_URL_HOSTNAME = /^(?!localhost$)(?!(\d{1,3}\.){3}\d{1,3}$)[a-z0-9.-]+$/i;
|
|
64
|
+
var fileUploadField = requiredObject({
|
|
65
|
+
url: optionalField(
|
|
66
|
+
zod.z.url({
|
|
67
|
+
protocol: UPLOAD_URL_PROTOCOL,
|
|
68
|
+
hostname: UPLOAD_URL_HOSTNAME,
|
|
69
|
+
error: "URL do arquivo inv\xE1lida"
|
|
70
|
+
})
|
|
71
|
+
),
|
|
72
|
+
mime: zod.z.enum(ACCEPTED_UPLOAD_MIME, { error: "Formato deve ser JPEG, PNG ou PDF" }),
|
|
73
|
+
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")
|
|
74
|
+
});
|
|
42
75
|
|
|
43
76
|
// src/shared/enums/nationality.ts
|
|
44
77
|
var NATIONALITY_BRAZIL = "brasil";
|
|
@@ -111,7 +144,10 @@ var PATTERNS = {
|
|
|
111
144
|
cep: /^\d{8}$/,
|
|
112
145
|
phoneBR: /^\d{11}$/,
|
|
113
146
|
email: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
|
|
114
|
-
dateDMY: /^\d{2}\/\d{2}\/\d{4}
|
|
147
|
+
dateDMY: /^\d{2}\/\d{2}\/\d{4}$/,
|
|
148
|
+
// Formato do RNE, exigido pela RN-015 para nacionalidade estrangeira.
|
|
149
|
+
rneNumber: /^[A-Za-z0-9]+$/
|
|
150
|
+
};
|
|
115
151
|
|
|
116
152
|
// src/shared/regex/validators.ts
|
|
117
153
|
function onlyDigits(value) {
|
|
@@ -191,6 +227,13 @@ function isNotFutureDMY(value, reference = /* @__PURE__ */ new Date()) {
|
|
|
191
227
|
}
|
|
192
228
|
return date.getTime() <= reference.getTime();
|
|
193
229
|
}
|
|
230
|
+
function yearsSinceDMY(value, reference = /* @__PURE__ */ new Date()) {
|
|
231
|
+
const date = parseDMY(value);
|
|
232
|
+
if (!date) {
|
|
233
|
+
return null;
|
|
234
|
+
}
|
|
235
|
+
return ageInYears(date, reference);
|
|
236
|
+
}
|
|
194
237
|
|
|
195
238
|
// src/shared/regex/index.ts
|
|
196
239
|
function requiredFormatString() {
|
|
@@ -221,27 +264,63 @@ function parseBRLCurrency(value) {
|
|
|
221
264
|
if (typeof value !== "string") {
|
|
222
265
|
return value;
|
|
223
266
|
}
|
|
224
|
-
const
|
|
225
|
-
if (
|
|
267
|
+
const normalized = value.replace(/R\$/gi, "").replace(/\s/g, "").replace(/\./g, "").replace(",", ".");
|
|
268
|
+
if (normalized === "") {
|
|
226
269
|
return void 0;
|
|
227
270
|
}
|
|
228
|
-
const normalized = trimmed.replace(/R\$/gi, "").replace(/\s/g, "").replace(/\./g, "").replace(",", ".");
|
|
229
271
|
const parsed = Number(normalized);
|
|
230
272
|
return Number.isNaN(parsed) ? value : parsed;
|
|
231
273
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
);
|
|
236
|
-
zod.z.
|
|
274
|
+
function brlAmount() {
|
|
275
|
+
return requiredNumber("Valor monet\xE1rio inv\xE1lido").positive("Valor deve ser positivo");
|
|
276
|
+
}
|
|
277
|
+
var currencySchema = zod.z.preprocess(parseBRLCurrency, brlAmount());
|
|
278
|
+
zod.z.preprocess(parseBRLCurrency, brlAmount().optional());
|
|
279
|
+
requiredNumber("Valor num\xE9rico inv\xE1lido").int("Deve ser um n\xFAmero inteiro").min(1, "M\xEDnimo 1").max(28, "M\xE1ximo 28");
|
|
237
280
|
var formalizationExtras = {
|
|
238
281
|
voucher_local_installation_address: fileUploadField,
|
|
239
|
-
proof_kinship_type: ProofKinshipTypeEnum
|
|
282
|
+
proof_kinship_type: optionalField(ProofKinshipTypeEnum),
|
|
240
283
|
proof_kinship: fileUploadField.optional(),
|
|
241
284
|
document_front_upload: fileUploadField,
|
|
242
285
|
document_back_upload: fileUploadField,
|
|
243
286
|
rd_re_insurance_toggle: zod.z.boolean().default(true)
|
|
244
287
|
};
|
|
288
|
+
|
|
289
|
+
// src/domains/financing/enums/civil-status.ts
|
|
290
|
+
var CIVIL_STATUS_REQUIRING_PARTNER = ["casado"];
|
|
291
|
+
var PARTNER_FIELDS = [
|
|
292
|
+
"partner_name",
|
|
293
|
+
"partner_birth",
|
|
294
|
+
"partner_type_doc",
|
|
295
|
+
"partner_doc",
|
|
296
|
+
"partner_cpf",
|
|
297
|
+
"partner_city",
|
|
298
|
+
"communion_regime"
|
|
299
|
+
];
|
|
300
|
+
|
|
301
|
+
// src/domains/financing/enums/occupation.ts
|
|
302
|
+
var OCCUPATIONS_REQUIRING_CNPJ = ["empresario", "empresario_ou_proprietario"];
|
|
303
|
+
|
|
304
|
+
// src/domains/financing/formalization/refinements.ts
|
|
305
|
+
var RG_MAX_EMISSION_YEARS = 10;
|
|
306
|
+
function applyPartnerRefinement(data, ctx) {
|
|
307
|
+
const civilStatus = data.civil_status;
|
|
308
|
+
const requiresPartner = typeof civilStatus === "string" && CIVIL_STATUS_REQUIRING_PARTNER.includes(civilStatus);
|
|
309
|
+
if (!requiresPartner) {
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
for (const field of PARTNER_FIELDS) {
|
|
313
|
+
const value = data[field];
|
|
314
|
+
const isEmpty = value === void 0 || value === null || typeof value === "string" && value.trim().length === 0;
|
|
315
|
+
if (isEmpty) {
|
|
316
|
+
ctx.addIssue({
|
|
317
|
+
code: "custom",
|
|
318
|
+
path: [field],
|
|
319
|
+
message: "Campo obrigat\xF3rio para o estado civil informado"
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
}
|
|
245
324
|
function applyCommonRefinements(data, ctx) {
|
|
246
325
|
const accountInThirdPartyName = data.energy_account_in_requester_name === "sim";
|
|
247
326
|
if (!accountInThirdPartyName) {
|
|
@@ -249,27 +328,90 @@ function applyCommonRefinements(data, ctx) {
|
|
|
249
328
|
}
|
|
250
329
|
if (!data.proof_kinship_type) {
|
|
251
330
|
ctx.addIssue({
|
|
252
|
-
code:
|
|
331
|
+
code: "custom",
|
|
253
332
|
path: ["proof_kinship_type"],
|
|
254
333
|
message: "Tipo de comprovante \xE9 obrigat\xF3rio quando a conta est\xE1 em nome de terceiro"
|
|
255
334
|
});
|
|
256
335
|
}
|
|
257
336
|
if (!data.proof_kinship) {
|
|
258
337
|
ctx.addIssue({
|
|
259
|
-
code:
|
|
338
|
+
code: "custom",
|
|
260
339
|
path: ["proof_kinship"],
|
|
261
340
|
message: "Documento de v\xEDnculo \xE9 obrigat\xF3rio quando a conta est\xE1 em nome de terceiro"
|
|
262
341
|
});
|
|
263
342
|
}
|
|
264
343
|
}
|
|
344
|
+
var FOREIGN_DOCUMENT_TYPE = "registro_de_estrangeiro";
|
|
345
|
+
function applyForeignDocumentRefinement(data, ctx) {
|
|
346
|
+
const nationality = data.nationality;
|
|
347
|
+
const isForeign = typeof nationality === "string" && nationality.toLowerCase() !== NATIONALITY_BRAZIL;
|
|
348
|
+
if (!isForeign || !("type_doc" in data)) {
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
if (data.type_doc !== FOREIGN_DOCUMENT_TYPE) {
|
|
352
|
+
ctx.addIssue({
|
|
353
|
+
code: "custom",
|
|
354
|
+
path: ["type_doc"],
|
|
355
|
+
message: "Para nacionalidade estrangeira, o documento deve ser Registro de Estrangeiro (RNE)"
|
|
356
|
+
});
|
|
357
|
+
return;
|
|
358
|
+
}
|
|
359
|
+
if (typeof data.doc === "string" && !PATTERNS.rneNumber.test(data.doc)) {
|
|
360
|
+
ctx.addIssue({
|
|
361
|
+
code: "custom",
|
|
362
|
+
path: ["doc"],
|
|
363
|
+
message: "RNE deve conter apenas letras e n\xFAmeros"
|
|
364
|
+
});
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
function isRecord(data) {
|
|
368
|
+
return typeof data === "object" && data !== null;
|
|
369
|
+
}
|
|
370
|
+
function applyPfRefinements(data, ctx) {
|
|
371
|
+
if (!isRecord(data)) {
|
|
372
|
+
return;
|
|
373
|
+
}
|
|
374
|
+
applyCommonRefinements(data, ctx);
|
|
375
|
+
applyPartnerRefinement(data, ctx);
|
|
376
|
+
if ("nature_of_occupation" in data && typeof data.nature_of_occupation === "string" && OCCUPATIONS_REQUIRING_CNPJ.includes(data.nature_of_occupation) && !data.cnpj_proprietary) {
|
|
377
|
+
ctx.addIssue({
|
|
378
|
+
code: "custom",
|
|
379
|
+
path: ["cnpj_proprietary"],
|
|
380
|
+
message: "CNPJ do propriet\xE1rio \xE9 obrigat\xF3rio para esta ocupa\xE7\xE3o"
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
if (data.type_doc === "documento_de_identidade" && typeof data.doc_issue_date === "string") {
|
|
384
|
+
const years = yearsSinceDMY(data.doc_issue_date);
|
|
385
|
+
if (years !== null && years > RG_MAX_EMISSION_YEARS) {
|
|
386
|
+
ctx.addIssue({
|
|
387
|
+
code: "custom",
|
|
388
|
+
path: ["doc_issue_date"],
|
|
389
|
+
message: `RG deve ter no m\xE1ximo ${RG_MAX_EMISSION_YEARS} anos de emiss\xE3o`
|
|
390
|
+
});
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
applyForeignDocumentRefinement(data, ctx);
|
|
394
|
+
}
|
|
265
395
|
function applyPjRefinements(data, ctx) {
|
|
396
|
+
if (!isRecord(data)) {
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
266
399
|
applyCommonRefinements(data, ctx);
|
|
267
400
|
}
|
|
401
|
+
function onlyUnknownKeysAborted(payload) {
|
|
402
|
+
return payload.aborted !== true && !payload.issues.some((issue) => issue.continue !== true && issue.code !== "unrecognized_keys");
|
|
403
|
+
}
|
|
404
|
+
zod.z.superRefine(applyPfRefinements, {
|
|
405
|
+
when: onlyUnknownKeysAborted
|
|
406
|
+
});
|
|
407
|
+
var pjRefinement = zod.z.superRefine(applyPjRefinements, {
|
|
408
|
+
when: onlyUnknownKeysAborted
|
|
409
|
+
});
|
|
268
410
|
|
|
269
411
|
// src/domains/financing/formalization/schemas/Credito77PJSchema.ts
|
|
270
|
-
var credito77PjObject =
|
|
412
|
+
var credito77PjObject = requiredObject({
|
|
271
413
|
...formalizationExtras,
|
|
272
|
-
financing_company:
|
|
414
|
+
financing_company: requiredObject({
|
|
273
415
|
corporate_name: textField(),
|
|
274
416
|
cep: cepSchema,
|
|
275
417
|
address: textField(),
|
|
@@ -277,7 +419,7 @@ var credito77PjObject = zod.z.object({
|
|
|
277
419
|
number: textField(),
|
|
278
420
|
cnpj: cnpjSchema,
|
|
279
421
|
email: emailSchema,
|
|
280
|
-
complement: textField(15)
|
|
422
|
+
complement: optionalField(textField(15)),
|
|
281
423
|
phone: phoneBRSchema,
|
|
282
424
|
district: textField(),
|
|
283
425
|
legal_nature: textField(),
|
|
@@ -287,15 +429,15 @@ var credito77PjObject = zod.z.object({
|
|
|
287
429
|
economic_activity: textField(),
|
|
288
430
|
monthly_income: currencySchema
|
|
289
431
|
}).strict(),
|
|
290
|
-
financing_company_guarantor:
|
|
291
|
-
|
|
432
|
+
financing_company_guarantor: requiredArray(
|
|
433
|
+
requiredObject({
|
|
292
434
|
name: textField(),
|
|
293
435
|
cep: cepSchema,
|
|
294
436
|
cpf: cpfSchema,
|
|
295
437
|
address: textField(),
|
|
296
438
|
birth_date: birthDateSchema,
|
|
297
439
|
number: textField(),
|
|
298
|
-
complement: textField(15)
|
|
440
|
+
complement: optionalField(textField(15)),
|
|
299
441
|
cellphone: phoneBRSchema,
|
|
300
442
|
email: emailSchema,
|
|
301
443
|
district: textField(),
|
|
@@ -308,7 +450,7 @@ var credito77PjObject = zod.z.object({
|
|
|
308
450
|
}).strict()
|
|
309
451
|
)
|
|
310
452
|
});
|
|
311
|
-
var credito77PjSchema = credito77PjObject.strict().
|
|
453
|
+
var credito77PjSchema = credito77PjObject.strict().check(pjRefinement);
|
|
312
454
|
|
|
313
455
|
exports.credito77PjObject = credito77PjObject;
|
|
314
456
|
exports.credito77PjSchema = credito77PjSchema;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { credito77PjObject, credito77PjSchema } from '../../../chunk-
|
|
2
|
-
import '../../../chunk-
|
|
1
|
+
export { credito77PjObject, credito77PjSchema } from '../../../chunk-HXHJSQ2X.mjs';
|
|
2
|
+
import '../../../chunk-CJSJ3VDW.mjs';
|