@77sol-lab/form-schemas 2.0.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-6U3W3WGJ.mjs → chunk-4T4DDJJZ.mjs} +6 -6
- package/{chunk-QGHAWR7N.mjs → chunk-65WB3CQB.mjs} +8 -8
- package/{chunk-AFF2ESHC.mjs → chunk-6AISIJ3O.mjs} +6 -6
- package/{chunk-P5QT636Q.mjs → chunk-7ULQG7YJ.mjs} +8 -8
- package/{chunk-QFCBUDTN.mjs → chunk-7VU2KIBV.mjs} +6 -6
- package/chunk-BXLQYGEB.mjs +105 -0
- package/{chunk-Z6PA77SA.mjs → chunk-CGBX6OCD.mjs} +6 -6
- package/{chunk-DKIUSETH.mjs → chunk-CJSJ3VDW.mjs} +109 -41
- package/{chunk-MKN3T4EC.mjs → chunk-EG5RVHCZ.mjs} +8 -8
- package/{chunk-2JHLFEU7.mjs → chunk-F4RMWUXJ.mjs} +9 -9
- package/{chunk-LXNKU6Q5.mjs → chunk-GBKY6QE3.mjs} +6 -6
- package/{chunk-KIN5ASCQ.mjs → chunk-HF7G6PTH.mjs} +8 -8
- package/{chunk-VGBIJ7LQ.mjs → chunk-HX5UJCA2.mjs} +6 -6
- package/{chunk-DRLPCEVY.mjs → chunk-HXHJSQ2X.mjs} +8 -8
- package/{chunk-ECQBM5TA.mjs → chunk-IVY6IQXZ.mjs} +8 -8
- package/{chunk-TGDPLYN3.mjs → chunk-K3QXEL6M.mjs} +19 -20
- package/{chunk-64RQV46Z.mjs → chunk-LDL7QLPB.mjs} +6 -6
- package/{chunk-DWOFPI2A.mjs → chunk-LRIO6V7H.mjs} +6 -6
- package/{chunk-FGNV6RT5.mjs → chunk-OIGZEDM3.mjs} +6 -6
- package/{chunk-FBL2YW6F.mjs → chunk-OJUTNXHL.mjs} +135 -38
- package/{chunk-E5SPEAZO.mjs → chunk-OKAMQBUN.mjs} +6 -6
- package/{chunk-KOB7CHDM.mjs → chunk-PCTF5JYB.mjs} +8 -8
- package/{chunk-26RFB4ZS.mjs → chunk-PCXYLWDD.mjs} +8 -8
- package/chunk-QEPJ2RLU.mjs +18 -0
- package/{chunk-LCD7MY35.mjs → chunk-QQCSQ3L4.mjs} +9 -9
- package/{chunk-IVT2ZFVR.mjs → chunk-R5TJYTTO.mjs} +8 -8
- package/{chunk-WVQ2LFIN.mjs → chunk-T2FBV7WO.mjs} +9 -9
- package/{chunk-LNPPAYB6.mjs → chunk-TNZ33455.mjs} +6 -6
- package/{chunk-J4BYCQDX.mjs → chunk-TWOBBIQC.mjs} +8 -8
- package/{chunk-NQIIQVGK.mjs → chunk-TZEPVIC4.mjs} +8 -8
- package/{chunk-QSMMXRNI.mjs → chunk-UK62IINL.mjs} +6 -6
- package/{chunk-6EBUH4MK.mjs → chunk-VTTNXB64.mjs} +6 -6
- package/{chunk-DQ6ZS36G.mjs → chunk-VWKF4I2L.mjs} +8 -8
- package/financing/formalization/index.d.cts +710 -708
- package/financing/formalization/index.d.ts +710 -708
- package/financing/formalization/index.js +454 -226
- package/financing/formalization/index.mjs +33 -33
- package/financing/formalization/schemas/AlfaPFSchema.d.cts +16 -16
- package/financing/formalization/schemas/AlfaPFSchema.d.ts +16 -16
- package/financing/formalization/schemas/AlfaPFSchema.js +94 -27
- package/financing/formalization/schemas/AlfaPFSchema.mjs +3 -3
- package/financing/formalization/schemas/AlfaPJSchema.d.cts +16 -16
- package/financing/formalization/schemas/AlfaPJSchema.d.ts +16 -16
- package/financing/formalization/schemas/AlfaPJSchema.js +97 -29
- package/financing/formalization/schemas/AlfaPJSchema.mjs +2 -2
- package/financing/formalization/schemas/BancoDoBrasilPFSchema.d.cts +16 -16
- package/financing/formalization/schemas/BancoDoBrasilPFSchema.d.ts +16 -16
- package/financing/formalization/schemas/BancoDoBrasilPFSchema.js +94 -27
- package/financing/formalization/schemas/BancoDoBrasilPFSchema.mjs +3 -3
- package/financing/formalization/schemas/BancoDoBrasilPJSchema.d.cts +16 -16
- package/financing/formalization/schemas/BancoDoBrasilPJSchema.d.ts +16 -16
- package/financing/formalization/schemas/BancoDoBrasilPJSchema.js +97 -29
- package/financing/formalization/schemas/BancoDoBrasilPJSchema.mjs +2 -2
- package/financing/formalization/schemas/BtgPFSchema.d.cts +16 -16
- package/financing/formalization/schemas/BtgPFSchema.d.ts +16 -16
- package/financing/formalization/schemas/BtgPFSchema.js +94 -27
- package/financing/formalization/schemas/BtgPFSchema.mjs +3 -3
- package/financing/formalization/schemas/BtgPJSchema.d.cts +16 -16
- package/financing/formalization/schemas/BtgPJSchema.d.ts +16 -16
- package/financing/formalization/schemas/BtgPJSchema.js +102 -30
- package/financing/formalization/schemas/BtgPJSchema.mjs +3 -3
- package/financing/formalization/schemas/BvPFSchema.d.cts +20 -20
- package/financing/formalization/schemas/BvPFSchema.d.ts +20 -20
- package/financing/formalization/schemas/BvPFSchema.js +96 -29
- package/financing/formalization/schemas/BvPFSchema.mjs +3 -3
- package/financing/formalization/schemas/BvPJSchema.d.cts +16 -16
- package/financing/formalization/schemas/BvPJSchema.d.ts +16 -16
- package/financing/formalization/schemas/BvPJSchema.js +102 -30
- package/financing/formalization/schemas/BvPJSchema.mjs +3 -3
- package/financing/formalization/schemas/CaixaEconomicaFederalPFSchema.d.cts +16 -16
- package/financing/formalization/schemas/CaixaEconomicaFederalPFSchema.d.ts +16 -16
- package/financing/formalization/schemas/CaixaEconomicaFederalPFSchema.js +94 -27
- package/financing/formalization/schemas/CaixaEconomicaFederalPFSchema.mjs +3 -3
- package/financing/formalization/schemas/CaixaEconomicaFederalPJSchema.d.cts +16 -16
- package/financing/formalization/schemas/CaixaEconomicaFederalPJSchema.d.ts +16 -16
- package/financing/formalization/schemas/CaixaEconomicaFederalPJSchema.js +97 -29
- package/financing/formalization/schemas/CaixaEconomicaFederalPJSchema.mjs +2 -2
- package/financing/formalization/schemas/CashMePFSchema.d.cts +16 -16
- package/financing/formalization/schemas/CashMePFSchema.d.ts +16 -16
- package/financing/formalization/schemas/CashMePFSchema.js +94 -27
- package/financing/formalization/schemas/CashMePFSchema.mjs +3 -3
- package/financing/formalization/schemas/CashMePJSchema.d.cts +16 -16
- package/financing/formalization/schemas/CashMePJSchema.d.ts +16 -16
- package/financing/formalization/schemas/CashMePJSchema.js +97 -29
- package/financing/formalization/schemas/CashMePJSchema.mjs +2 -2
- package/financing/formalization/schemas/Credito77PFSchema.d.cts +16 -16
- package/financing/formalization/schemas/Credito77PFSchema.d.ts +16 -16
- package/financing/formalization/schemas/Credito77PFSchema.js +94 -27
- package/financing/formalization/schemas/Credito77PFSchema.mjs +3 -3
- package/financing/formalization/schemas/Credito77PJSchema.d.cts +16 -16
- package/financing/formalization/schemas/Credito77PJSchema.d.ts +16 -16
- package/financing/formalization/schemas/Credito77PJSchema.js +97 -29
- package/financing/formalization/schemas/Credito77PJSchema.mjs +2 -2
- package/financing/formalization/schemas/EosPFSchema.d.cts +16 -16
- package/financing/formalization/schemas/EosPFSchema.d.ts +16 -16
- package/financing/formalization/schemas/EosPFSchema.js +94 -27
- package/financing/formalization/schemas/EosPFSchema.mjs +3 -3
- package/financing/formalization/schemas/EosPJSchema.d.cts +16 -16
- package/financing/formalization/schemas/EosPJSchema.d.ts +16 -16
- package/financing/formalization/schemas/EosPJSchema.js +97 -29
- package/financing/formalization/schemas/EosPJSchema.mjs +2 -2
- package/financing/formalization/schemas/HdtEnergyPFSchema.d.cts +16 -16
- package/financing/formalization/schemas/HdtEnergyPFSchema.d.ts +16 -16
- package/financing/formalization/schemas/HdtEnergyPFSchema.js +94 -27
- package/financing/formalization/schemas/HdtEnergyPFSchema.mjs +3 -3
- package/financing/formalization/schemas/HdtEnergyPJSchema.d.cts +16 -16
- package/financing/formalization/schemas/HdtEnergyPJSchema.d.ts +16 -16
- package/financing/formalization/schemas/HdtEnergyPJSchema.js +97 -29
- package/financing/formalization/schemas/HdtEnergyPJSchema.mjs +2 -2
- package/financing/formalization/schemas/LosangoPFSchema.d.cts +16 -16
- package/financing/formalization/schemas/LosangoPFSchema.d.ts +16 -16
- package/financing/formalization/schemas/LosangoPFSchema.js +94 -27
- package/financing/formalization/schemas/LosangoPFSchema.mjs +3 -3
- package/financing/formalization/schemas/LosangoPJSchema.d.cts +16 -16
- package/financing/formalization/schemas/LosangoPJSchema.d.ts +16 -16
- package/financing/formalization/schemas/LosangoPJSchema.js +97 -29
- package/financing/formalization/schemas/LosangoPJSchema.mjs +2 -2
- package/financing/formalization/schemas/SafraPFSchema.d.cts +16 -16
- package/financing/formalization/schemas/SafraPFSchema.d.ts +16 -16
- package/financing/formalization/schemas/SafraPFSchema.js +94 -27
- package/financing/formalization/schemas/SafraPFSchema.mjs +3 -3
- package/financing/formalization/schemas/SafraPJSchema.d.cts +16 -16
- package/financing/formalization/schemas/SafraPJSchema.d.ts +16 -16
- package/financing/formalization/schemas/SafraPJSchema.js +97 -29
- package/financing/formalization/schemas/SafraPJSchema.mjs +2 -2
- package/financing/formalization/schemas/SantanderPFSchema.d.cts +16 -16
- package/financing/formalization/schemas/SantanderPFSchema.d.ts +16 -16
- package/financing/formalization/schemas/SantanderPFSchema.js +94 -27
- package/financing/formalization/schemas/SantanderPFSchema.mjs +3 -3
- package/financing/formalization/schemas/SantanderPJSchema.d.cts +16 -16
- package/financing/formalization/schemas/SantanderPJSchema.d.ts +16 -16
- package/financing/formalization/schemas/SantanderPJSchema.js +97 -29
- package/financing/formalization/schemas/SantanderPJSchema.mjs +2 -2
- package/financing/formalization/schemas/SolAgoraPFSchema.d.cts +16 -16
- package/financing/formalization/schemas/SolAgoraPFSchema.d.ts +16 -16
- package/financing/formalization/schemas/SolAgoraPFSchema.js +94 -27
- package/financing/formalization/schemas/SolAgoraPFSchema.mjs +3 -3
- package/financing/formalization/schemas/SolAgoraPJSchema.d.cts +16 -16
- package/financing/formalization/schemas/SolAgoraPJSchema.d.ts +16 -16
- package/financing/formalization/schemas/SolAgoraPJSchema.js +102 -30
- package/financing/formalization/schemas/SolAgoraPJSchema.mjs +3 -3
- package/financing/formalization/schemas/SolfacilPFSchema.d.cts +16 -16
- package/financing/formalization/schemas/SolfacilPFSchema.d.ts +16 -16
- package/financing/formalization/schemas/SolfacilPFSchema.js +94 -27
- package/financing/formalization/schemas/SolfacilPFSchema.mjs +3 -3
- package/financing/formalization/schemas/SolfacilPJSchema.d.cts +16 -16
- package/financing/formalization/schemas/SolfacilPJSchema.d.ts +16 -16
- package/financing/formalization/schemas/SolfacilPJSchema.js +97 -29
- package/financing/formalization/schemas/SolfacilPJSchema.mjs +2 -2
- package/financing/formalization/schemas/UnifiedPFSchema.d.cts +48 -48
- package/financing/formalization/schemas/UnifiedPFSchema.d.ts +48 -48
- package/financing/formalization/schemas/UnifiedPFSchema.js +108 -41
- package/financing/formalization/schemas/UnifiedPFSchema.mjs +3 -3
- package/financing/formalization/schemas/UnifiedPJSchema.d.cts +118 -118
- package/financing/formalization/schemas/UnifiedPJSchema.d.ts +118 -118
- package/financing/formalization/schemas/UnifiedPJSchema.js +147 -75
- package/financing/formalization/schemas/UnifiedPJSchema.mjs +3 -3
- package/index.js +454 -226
- package/index.mjs +33 -33
- package/package.json +1 -1
- package/chunk-ARSY3NB7.mjs +0 -13
- package/chunk-QZ2BTLCH.mjs +0 -105
|
@@ -2,15 +2,14 @@
|
|
|
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 = { error: REQUIRED_MESSAGE };
|
|
8
7
|
function requiredString() {
|
|
9
|
-
return zod.z.string(
|
|
8
|
+
return zod.z.string({ error: REQUIRED_MESSAGE });
|
|
10
9
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
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`);
|
|
14
13
|
}
|
|
15
14
|
function requiredNumber(invalidTypeMessage) {
|
|
16
15
|
return zod.z.number({
|
|
@@ -21,6 +20,34 @@ requiredNumber("Valor num\xE9rico inv\xE1lido").nonnegative(
|
|
|
21
20
|
"Valor n\xE3o pode ser negativo"
|
|
22
21
|
);
|
|
23
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);
|
|
41
|
+
}
|
|
42
|
+
return void 0;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function requiredArray(element) {
|
|
47
|
+
return zod.z.array(element, {
|
|
48
|
+
error: (issue) => issue.code === "invalid_type" ? REQUIRED_MESSAGE : void 0
|
|
49
|
+
});
|
|
50
|
+
}
|
|
24
51
|
function enumField(values) {
|
|
25
52
|
return zod.z.enum(values, {
|
|
26
53
|
// No zod 4 todo input fora da lista (inclusive undefined/null) gera um único
|
|
@@ -32,14 +59,19 @@ function enumField(values) {
|
|
|
32
59
|
}
|
|
33
60
|
var MAX_UPLOAD_BYTES = 5 * 1024 * 1024;
|
|
34
61
|
var ACCEPTED_UPLOAD_MIME = ["image/jpeg", "image/png", "application/pdf"];
|
|
35
|
-
var
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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
|
+
});
|
|
43
75
|
|
|
44
76
|
// src/shared/enums/nationality.ts
|
|
45
77
|
var NATIONALITY_BRAZIL = "brasil";
|
|
@@ -112,7 +144,10 @@ var PATTERNS = {
|
|
|
112
144
|
cep: /^\d{8}$/,
|
|
113
145
|
phoneBR: /^\d{11}$/,
|
|
114
146
|
email: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
|
|
115
|
-
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
|
+
};
|
|
116
151
|
|
|
117
152
|
// src/shared/regex/validators.ts
|
|
118
153
|
function onlyDigits(value) {
|
|
@@ -229,22 +264,22 @@ function parseBRLCurrency(value) {
|
|
|
229
264
|
if (typeof value !== "string") {
|
|
230
265
|
return value;
|
|
231
266
|
}
|
|
232
|
-
const
|
|
233
|
-
if (
|
|
267
|
+
const normalized = value.replace(/R\$/gi, "").replace(/\s/g, "").replace(/\./g, "").replace(",", ".");
|
|
268
|
+
if (normalized === "") {
|
|
234
269
|
return void 0;
|
|
235
270
|
}
|
|
236
|
-
const normalized = trimmed.replace(/R\$/gi, "").replace(/\s/g, "").replace(/\./g, "").replace(",", ".");
|
|
237
271
|
const parsed = Number(normalized);
|
|
238
272
|
return Number.isNaN(parsed) ? value : parsed;
|
|
239
273
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
);
|
|
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());
|
|
244
279
|
requiredNumber("Valor num\xE9rico inv\xE1lido").int("Deve ser um n\xFAmero inteiro").min(1, "M\xEDnimo 1").max(28, "M\xE1ximo 28");
|
|
245
280
|
var formalizationExtras = {
|
|
246
281
|
voucher_local_installation_address: fileUploadField,
|
|
247
|
-
proof_kinship_type: ProofKinshipTypeEnum
|
|
282
|
+
proof_kinship_type: optionalField(ProofKinshipTypeEnum),
|
|
248
283
|
proof_kinship: fileUploadField.optional(),
|
|
249
284
|
document_front_upload: fileUploadField,
|
|
250
285
|
document_back_upload: fileUploadField,
|
|
@@ -306,7 +341,36 @@ function applyCommonRefinements(data, ctx) {
|
|
|
306
341
|
});
|
|
307
342
|
}
|
|
308
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
|
+
}
|
|
309
370
|
function applyPfRefinements(data, ctx) {
|
|
371
|
+
if (!isRecord(data)) {
|
|
372
|
+
return;
|
|
373
|
+
}
|
|
310
374
|
applyCommonRefinements(data, ctx);
|
|
311
375
|
applyPartnerRefinement(data, ctx);
|
|
312
376
|
if ("nature_of_occupation" in data && typeof data.nature_of_occupation === "string" && OCCUPATIONS_REQUIRING_CNPJ.includes(data.nature_of_occupation) && !data.cnpj_proprietary) {
|
|
@@ -326,8 +390,12 @@ function applyPfRefinements(data, ctx) {
|
|
|
326
390
|
});
|
|
327
391
|
}
|
|
328
392
|
}
|
|
393
|
+
applyForeignDocumentRefinement(data, ctx);
|
|
329
394
|
}
|
|
330
395
|
function applyPjRefinements(data, ctx) {
|
|
396
|
+
if (!isRecord(data)) {
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
331
399
|
applyCommonRefinements(data, ctx);
|
|
332
400
|
}
|
|
333
401
|
function onlyUnknownKeysAborted(payload) {
|
|
@@ -341,9 +409,9 @@ var pjRefinement = zod.z.superRefine(applyPjRefinements, {
|
|
|
341
409
|
});
|
|
342
410
|
|
|
343
411
|
// src/domains/financing/formalization/schemas/LosangoPJSchema.ts
|
|
344
|
-
var losangoPjObject =
|
|
412
|
+
var losangoPjObject = requiredObject({
|
|
345
413
|
...formalizationExtras,
|
|
346
|
-
financing_company:
|
|
414
|
+
financing_company: requiredObject({
|
|
347
415
|
corporate_name: textField(),
|
|
348
416
|
cep: cepSchema,
|
|
349
417
|
address: textField(),
|
|
@@ -351,7 +419,7 @@ var losangoPjObject = zod.z.object({
|
|
|
351
419
|
number: textField(),
|
|
352
420
|
cnpj: cnpjSchema,
|
|
353
421
|
email: emailSchema,
|
|
354
|
-
complement: textField(15)
|
|
422
|
+
complement: optionalField(textField(15)),
|
|
355
423
|
phone: phoneBRSchema,
|
|
356
424
|
district: textField(),
|
|
357
425
|
legal_nature: textField(),
|
|
@@ -361,15 +429,15 @@ var losangoPjObject = zod.z.object({
|
|
|
361
429
|
economic_activity: textField(),
|
|
362
430
|
monthly_income: currencySchema
|
|
363
431
|
}).strict(),
|
|
364
|
-
financing_company_guarantor:
|
|
365
|
-
|
|
432
|
+
financing_company_guarantor: requiredArray(
|
|
433
|
+
requiredObject({
|
|
366
434
|
name: textField(),
|
|
367
435
|
cep: cepSchema,
|
|
368
436
|
cpf: cpfSchema,
|
|
369
437
|
address: textField(),
|
|
370
438
|
birth_date: birthDateSchema,
|
|
371
439
|
number: textField(),
|
|
372
|
-
complement: textField(15)
|
|
440
|
+
complement: optionalField(textField(15)),
|
|
373
441
|
cellphone: phoneBRSchema,
|
|
374
442
|
email: emailSchema,
|
|
375
443
|
district: textField(),
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { losangoPjObject, losangoPjSchema } from '../../../chunk-
|
|
2
|
-
import '../../../chunk-
|
|
1
|
+
export { losangoPjObject, losangoPjSchema } from '../../../chunk-HF7G6PTH.mjs';
|
|
2
|
+
import '../../../chunk-CJSJ3VDW.mjs';
|
|
@@ -10,12 +10,12 @@ declare const safraPfObject: z.ZodObject<{
|
|
|
10
10
|
sex: z.ZodEnum<{
|
|
11
11
|
[x: string]: string;
|
|
12
12
|
}>;
|
|
13
|
-
complement: z.ZodOptional<z.ZodString
|
|
13
|
+
complement: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
|
|
14
14
|
mother_name: z.ZodString;
|
|
15
15
|
district: z.ZodString;
|
|
16
16
|
energy_account_in_requester_name: z.ZodString;
|
|
17
17
|
city: z.ZodString;
|
|
18
|
-
energy_bill_owner_document: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string
|
|
18
|
+
energy_bill_owner_document: z.ZodPreprocess<z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>>;
|
|
19
19
|
state: z.ZodEnum<{
|
|
20
20
|
[x: string]: string;
|
|
21
21
|
}>;
|
|
@@ -33,7 +33,7 @@ declare const safraPfObject: z.ZodObject<{
|
|
|
33
33
|
issuing_body: z.ZodString;
|
|
34
34
|
doc_issue_date: z.ZodString;
|
|
35
35
|
voucher_local_installation_address: z.ZodObject<{
|
|
36
|
-
url: z.ZodOptional<z.ZodURL
|
|
36
|
+
url: z.ZodPreprocess<z.ZodOptional<z.ZodURL>>;
|
|
37
37
|
mime: z.ZodEnum<{
|
|
38
38
|
"image/jpeg": "image/jpeg";
|
|
39
39
|
"image/png": "image/png";
|
|
@@ -41,11 +41,11 @@ declare const safraPfObject: z.ZodObject<{
|
|
|
41
41
|
}>;
|
|
42
42
|
sizeBytes: z.ZodNumber;
|
|
43
43
|
}, z.core.$strip>;
|
|
44
|
-
proof_kinship_type: z.ZodOptional<z.ZodEnum<{
|
|
44
|
+
proof_kinship_type: z.ZodPreprocess<z.ZodOptional<z.ZodEnum<{
|
|
45
45
|
[x: string]: string;
|
|
46
|
-
}
|
|
46
|
+
}>>>;
|
|
47
47
|
proof_kinship: z.ZodOptional<z.ZodObject<{
|
|
48
|
-
url: z.ZodOptional<z.ZodURL
|
|
48
|
+
url: z.ZodPreprocess<z.ZodOptional<z.ZodURL>>;
|
|
49
49
|
mime: z.ZodEnum<{
|
|
50
50
|
"image/jpeg": "image/jpeg";
|
|
51
51
|
"image/png": "image/png";
|
|
@@ -54,7 +54,7 @@ declare const safraPfObject: z.ZodObject<{
|
|
|
54
54
|
sizeBytes: z.ZodNumber;
|
|
55
55
|
}, z.core.$strip>>;
|
|
56
56
|
document_front_upload: z.ZodObject<{
|
|
57
|
-
url: z.ZodOptional<z.ZodURL
|
|
57
|
+
url: z.ZodPreprocess<z.ZodOptional<z.ZodURL>>;
|
|
58
58
|
mime: z.ZodEnum<{
|
|
59
59
|
"image/jpeg": "image/jpeg";
|
|
60
60
|
"image/png": "image/png";
|
|
@@ -63,7 +63,7 @@ declare const safraPfObject: z.ZodObject<{
|
|
|
63
63
|
sizeBytes: z.ZodNumber;
|
|
64
64
|
}, z.core.$strip>;
|
|
65
65
|
document_back_upload: z.ZodObject<{
|
|
66
|
-
url: z.ZodOptional<z.ZodURL
|
|
66
|
+
url: z.ZodPreprocess<z.ZodOptional<z.ZodURL>>;
|
|
67
67
|
mime: z.ZodEnum<{
|
|
68
68
|
"image/jpeg": "image/jpeg";
|
|
69
69
|
"image/png": "image/png";
|
|
@@ -83,12 +83,12 @@ declare const safraPfSchema: z.ZodObject<{
|
|
|
83
83
|
sex: z.ZodEnum<{
|
|
84
84
|
[x: string]: string;
|
|
85
85
|
}>;
|
|
86
|
-
complement: z.ZodOptional<z.ZodString
|
|
86
|
+
complement: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
|
|
87
87
|
mother_name: z.ZodString;
|
|
88
88
|
district: z.ZodString;
|
|
89
89
|
energy_account_in_requester_name: z.ZodString;
|
|
90
90
|
city: z.ZodString;
|
|
91
|
-
energy_bill_owner_document: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string
|
|
91
|
+
energy_bill_owner_document: z.ZodPreprocess<z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>>;
|
|
92
92
|
state: z.ZodEnum<{
|
|
93
93
|
[x: string]: string;
|
|
94
94
|
}>;
|
|
@@ -106,7 +106,7 @@ declare const safraPfSchema: z.ZodObject<{
|
|
|
106
106
|
issuing_body: z.ZodString;
|
|
107
107
|
doc_issue_date: z.ZodString;
|
|
108
108
|
voucher_local_installation_address: z.ZodObject<{
|
|
109
|
-
url: z.ZodOptional<z.ZodURL
|
|
109
|
+
url: z.ZodPreprocess<z.ZodOptional<z.ZodURL>>;
|
|
110
110
|
mime: z.ZodEnum<{
|
|
111
111
|
"image/jpeg": "image/jpeg";
|
|
112
112
|
"image/png": "image/png";
|
|
@@ -114,11 +114,11 @@ declare const safraPfSchema: z.ZodObject<{
|
|
|
114
114
|
}>;
|
|
115
115
|
sizeBytes: z.ZodNumber;
|
|
116
116
|
}, z.core.$strip>;
|
|
117
|
-
proof_kinship_type: z.ZodOptional<z.ZodEnum<{
|
|
117
|
+
proof_kinship_type: z.ZodPreprocess<z.ZodOptional<z.ZodEnum<{
|
|
118
118
|
[x: string]: string;
|
|
119
|
-
}
|
|
119
|
+
}>>>;
|
|
120
120
|
proof_kinship: z.ZodOptional<z.ZodObject<{
|
|
121
|
-
url: z.ZodOptional<z.ZodURL
|
|
121
|
+
url: z.ZodPreprocess<z.ZodOptional<z.ZodURL>>;
|
|
122
122
|
mime: z.ZodEnum<{
|
|
123
123
|
"image/jpeg": "image/jpeg";
|
|
124
124
|
"image/png": "image/png";
|
|
@@ -127,7 +127,7 @@ declare const safraPfSchema: z.ZodObject<{
|
|
|
127
127
|
sizeBytes: z.ZodNumber;
|
|
128
128
|
}, z.core.$strip>>;
|
|
129
129
|
document_front_upload: z.ZodObject<{
|
|
130
|
-
url: z.ZodOptional<z.ZodURL
|
|
130
|
+
url: z.ZodPreprocess<z.ZodOptional<z.ZodURL>>;
|
|
131
131
|
mime: z.ZodEnum<{
|
|
132
132
|
"image/jpeg": "image/jpeg";
|
|
133
133
|
"image/png": "image/png";
|
|
@@ -136,7 +136,7 @@ declare const safraPfSchema: z.ZodObject<{
|
|
|
136
136
|
sizeBytes: z.ZodNumber;
|
|
137
137
|
}, z.core.$strip>;
|
|
138
138
|
document_back_upload: z.ZodObject<{
|
|
139
|
-
url: z.ZodOptional<z.ZodURL
|
|
139
|
+
url: z.ZodPreprocess<z.ZodOptional<z.ZodURL>>;
|
|
140
140
|
mime: z.ZodEnum<{
|
|
141
141
|
"image/jpeg": "image/jpeg";
|
|
142
142
|
"image/png": "image/png";
|
|
@@ -10,12 +10,12 @@ declare const safraPfObject: z.ZodObject<{
|
|
|
10
10
|
sex: z.ZodEnum<{
|
|
11
11
|
[x: string]: string;
|
|
12
12
|
}>;
|
|
13
|
-
complement: z.ZodOptional<z.ZodString
|
|
13
|
+
complement: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
|
|
14
14
|
mother_name: z.ZodString;
|
|
15
15
|
district: z.ZodString;
|
|
16
16
|
energy_account_in_requester_name: z.ZodString;
|
|
17
17
|
city: z.ZodString;
|
|
18
|
-
energy_bill_owner_document: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string
|
|
18
|
+
energy_bill_owner_document: z.ZodPreprocess<z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>>;
|
|
19
19
|
state: z.ZodEnum<{
|
|
20
20
|
[x: string]: string;
|
|
21
21
|
}>;
|
|
@@ -33,7 +33,7 @@ declare const safraPfObject: z.ZodObject<{
|
|
|
33
33
|
issuing_body: z.ZodString;
|
|
34
34
|
doc_issue_date: z.ZodString;
|
|
35
35
|
voucher_local_installation_address: z.ZodObject<{
|
|
36
|
-
url: z.ZodOptional<z.ZodURL
|
|
36
|
+
url: z.ZodPreprocess<z.ZodOptional<z.ZodURL>>;
|
|
37
37
|
mime: z.ZodEnum<{
|
|
38
38
|
"image/jpeg": "image/jpeg";
|
|
39
39
|
"image/png": "image/png";
|
|
@@ -41,11 +41,11 @@ declare const safraPfObject: z.ZodObject<{
|
|
|
41
41
|
}>;
|
|
42
42
|
sizeBytes: z.ZodNumber;
|
|
43
43
|
}, z.core.$strip>;
|
|
44
|
-
proof_kinship_type: z.ZodOptional<z.ZodEnum<{
|
|
44
|
+
proof_kinship_type: z.ZodPreprocess<z.ZodOptional<z.ZodEnum<{
|
|
45
45
|
[x: string]: string;
|
|
46
|
-
}
|
|
46
|
+
}>>>;
|
|
47
47
|
proof_kinship: z.ZodOptional<z.ZodObject<{
|
|
48
|
-
url: z.ZodOptional<z.ZodURL
|
|
48
|
+
url: z.ZodPreprocess<z.ZodOptional<z.ZodURL>>;
|
|
49
49
|
mime: z.ZodEnum<{
|
|
50
50
|
"image/jpeg": "image/jpeg";
|
|
51
51
|
"image/png": "image/png";
|
|
@@ -54,7 +54,7 @@ declare const safraPfObject: z.ZodObject<{
|
|
|
54
54
|
sizeBytes: z.ZodNumber;
|
|
55
55
|
}, z.core.$strip>>;
|
|
56
56
|
document_front_upload: z.ZodObject<{
|
|
57
|
-
url: z.ZodOptional<z.ZodURL
|
|
57
|
+
url: z.ZodPreprocess<z.ZodOptional<z.ZodURL>>;
|
|
58
58
|
mime: z.ZodEnum<{
|
|
59
59
|
"image/jpeg": "image/jpeg";
|
|
60
60
|
"image/png": "image/png";
|
|
@@ -63,7 +63,7 @@ declare const safraPfObject: z.ZodObject<{
|
|
|
63
63
|
sizeBytes: z.ZodNumber;
|
|
64
64
|
}, z.core.$strip>;
|
|
65
65
|
document_back_upload: z.ZodObject<{
|
|
66
|
-
url: z.ZodOptional<z.ZodURL
|
|
66
|
+
url: z.ZodPreprocess<z.ZodOptional<z.ZodURL>>;
|
|
67
67
|
mime: z.ZodEnum<{
|
|
68
68
|
"image/jpeg": "image/jpeg";
|
|
69
69
|
"image/png": "image/png";
|
|
@@ -83,12 +83,12 @@ declare const safraPfSchema: z.ZodObject<{
|
|
|
83
83
|
sex: z.ZodEnum<{
|
|
84
84
|
[x: string]: string;
|
|
85
85
|
}>;
|
|
86
|
-
complement: z.ZodOptional<z.ZodString
|
|
86
|
+
complement: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
|
|
87
87
|
mother_name: z.ZodString;
|
|
88
88
|
district: z.ZodString;
|
|
89
89
|
energy_account_in_requester_name: z.ZodString;
|
|
90
90
|
city: z.ZodString;
|
|
91
|
-
energy_bill_owner_document: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string
|
|
91
|
+
energy_bill_owner_document: z.ZodPreprocess<z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>>;
|
|
92
92
|
state: z.ZodEnum<{
|
|
93
93
|
[x: string]: string;
|
|
94
94
|
}>;
|
|
@@ -106,7 +106,7 @@ declare const safraPfSchema: z.ZodObject<{
|
|
|
106
106
|
issuing_body: z.ZodString;
|
|
107
107
|
doc_issue_date: z.ZodString;
|
|
108
108
|
voucher_local_installation_address: z.ZodObject<{
|
|
109
|
-
url: z.ZodOptional<z.ZodURL
|
|
109
|
+
url: z.ZodPreprocess<z.ZodOptional<z.ZodURL>>;
|
|
110
110
|
mime: z.ZodEnum<{
|
|
111
111
|
"image/jpeg": "image/jpeg";
|
|
112
112
|
"image/png": "image/png";
|
|
@@ -114,11 +114,11 @@ declare const safraPfSchema: z.ZodObject<{
|
|
|
114
114
|
}>;
|
|
115
115
|
sizeBytes: z.ZodNumber;
|
|
116
116
|
}, z.core.$strip>;
|
|
117
|
-
proof_kinship_type: z.ZodOptional<z.ZodEnum<{
|
|
117
|
+
proof_kinship_type: z.ZodPreprocess<z.ZodOptional<z.ZodEnum<{
|
|
118
118
|
[x: string]: string;
|
|
119
|
-
}
|
|
119
|
+
}>>>;
|
|
120
120
|
proof_kinship: z.ZodOptional<z.ZodObject<{
|
|
121
|
-
url: z.ZodOptional<z.ZodURL
|
|
121
|
+
url: z.ZodPreprocess<z.ZodOptional<z.ZodURL>>;
|
|
122
122
|
mime: z.ZodEnum<{
|
|
123
123
|
"image/jpeg": "image/jpeg";
|
|
124
124
|
"image/png": "image/png";
|
|
@@ -127,7 +127,7 @@ declare const safraPfSchema: z.ZodObject<{
|
|
|
127
127
|
sizeBytes: z.ZodNumber;
|
|
128
128
|
}, z.core.$strip>>;
|
|
129
129
|
document_front_upload: z.ZodObject<{
|
|
130
|
-
url: z.ZodOptional<z.ZodURL
|
|
130
|
+
url: z.ZodPreprocess<z.ZodOptional<z.ZodURL>>;
|
|
131
131
|
mime: z.ZodEnum<{
|
|
132
132
|
"image/jpeg": "image/jpeg";
|
|
133
133
|
"image/png": "image/png";
|
|
@@ -136,7 +136,7 @@ declare const safraPfSchema: z.ZodObject<{
|
|
|
136
136
|
sizeBytes: z.ZodNumber;
|
|
137
137
|
}, z.core.$strip>;
|
|
138
138
|
document_back_upload: z.ZodObject<{
|
|
139
|
-
url: z.ZodOptional<z.ZodURL
|
|
139
|
+
url: z.ZodPreprocess<z.ZodOptional<z.ZodURL>>;
|
|
140
140
|
mime: z.ZodEnum<{
|
|
141
141
|
"image/jpeg": "image/jpeg";
|
|
142
142
|
"image/png": "image/png";
|
|
@@ -2,15 +2,14 @@
|
|
|
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 = { error: REQUIRED_MESSAGE };
|
|
8
7
|
function requiredString() {
|
|
9
|
-
return zod.z.string(
|
|
8
|
+
return zod.z.string({ error: REQUIRED_MESSAGE });
|
|
10
9
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
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`);
|
|
14
13
|
}
|
|
15
14
|
function requiredNumber(invalidTypeMessage) {
|
|
16
15
|
return zod.z.number({
|
|
@@ -21,6 +20,29 @@ requiredNumber("Valor num\xE9rico inv\xE1lido").nonnegative(
|
|
|
21
20
|
"Valor n\xE3o pode ser negativo"
|
|
22
21
|
);
|
|
23
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);
|
|
41
|
+
}
|
|
42
|
+
return void 0;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
24
46
|
function enumField(values) {
|
|
25
47
|
return zod.z.enum(values, {
|
|
26
48
|
// No zod 4 todo input fora da lista (inclusive undefined/null) gera um único
|
|
@@ -32,19 +54,28 @@ function enumField(values) {
|
|
|
32
54
|
}
|
|
33
55
|
var MAX_UPLOAD_BYTES = 5 * 1024 * 1024;
|
|
34
56
|
var ACCEPTED_UPLOAD_MIME = ["image/jpeg", "image/png", "application/pdf"];
|
|
35
|
-
var
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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
|
+
});
|
|
43
70
|
|
|
44
71
|
// src/shared/enums/document-type.ts
|
|
45
72
|
var DocumentTypeEnum = enumField([
|
|
46
73
|
"documento_de_identidade",
|
|
47
|
-
"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"
|
|
48
79
|
]);
|
|
49
80
|
|
|
50
81
|
// src/shared/enums/nationality.ts
|
|
@@ -118,7 +149,10 @@ var PATTERNS = {
|
|
|
118
149
|
cep: /^\d{8}$/,
|
|
119
150
|
phoneBR: /^\d{11}$/,
|
|
120
151
|
email: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
|
|
121
|
-
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
|
+
};
|
|
122
156
|
|
|
123
157
|
// src/shared/regex/validators.ts
|
|
124
158
|
function onlyDigits(value) {
|
|
@@ -235,22 +269,22 @@ function parseBRLCurrency(value) {
|
|
|
235
269
|
if (typeof value !== "string") {
|
|
236
270
|
return value;
|
|
237
271
|
}
|
|
238
|
-
const
|
|
239
|
-
if (
|
|
272
|
+
const normalized = value.replace(/R\$/gi, "").replace(/\s/g, "").replace(/\./g, "").replace(",", ".");
|
|
273
|
+
if (normalized === "") {
|
|
240
274
|
return void 0;
|
|
241
275
|
}
|
|
242
|
-
const normalized = trimmed.replace(/R\$/gi, "").replace(/\s/g, "").replace(/\./g, "").replace(",", ".");
|
|
243
276
|
const parsed = Number(normalized);
|
|
244
277
|
return Number.isNaN(parsed) ? value : parsed;
|
|
245
278
|
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
);
|
|
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());
|
|
250
284
|
requiredNumber("Valor num\xE9rico inv\xE1lido").int("Deve ser um n\xFAmero inteiro").min(1, "M\xEDnimo 1").max(28, "M\xE1ximo 28");
|
|
251
285
|
var formalizationExtras = {
|
|
252
286
|
voucher_local_installation_address: fileUploadField,
|
|
253
|
-
proof_kinship_type: ProofKinshipTypeEnum
|
|
287
|
+
proof_kinship_type: optionalField(ProofKinshipTypeEnum),
|
|
254
288
|
proof_kinship: fileUploadField.optional(),
|
|
255
289
|
document_front_upload: fileUploadField,
|
|
256
290
|
document_back_upload: fileUploadField,
|
|
@@ -312,7 +346,36 @@ function applyCommonRefinements(data, ctx) {
|
|
|
312
346
|
});
|
|
313
347
|
}
|
|
314
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
|
+
}
|
|
315
375
|
function applyPfRefinements(data, ctx) {
|
|
376
|
+
if (!isRecord(data)) {
|
|
377
|
+
return;
|
|
378
|
+
}
|
|
316
379
|
applyCommonRefinements(data, ctx);
|
|
317
380
|
applyPartnerRefinement(data, ctx);
|
|
318
381
|
if ("nature_of_occupation" in data && typeof data.nature_of_occupation === "string" && OCCUPATIONS_REQUIRING_CNPJ.includes(data.nature_of_occupation) && !data.cnpj_proprietary) {
|
|
@@ -332,8 +395,12 @@ function applyPfRefinements(data, ctx) {
|
|
|
332
395
|
});
|
|
333
396
|
}
|
|
334
397
|
}
|
|
398
|
+
applyForeignDocumentRefinement(data, ctx);
|
|
335
399
|
}
|
|
336
400
|
function applyPjRefinements(data, ctx) {
|
|
401
|
+
if (!isRecord(data)) {
|
|
402
|
+
return;
|
|
403
|
+
}
|
|
337
404
|
applyCommonRefinements(data, ctx);
|
|
338
405
|
}
|
|
339
406
|
function onlyUnknownKeysAborted(payload) {
|
|
@@ -347,7 +414,7 @@ zod.z.superRefine(applyPjRefinements, {
|
|
|
347
414
|
});
|
|
348
415
|
|
|
349
416
|
// src/domains/financing/formalization/schemas/SafraPFSchema.ts
|
|
350
|
-
var safraPfObject =
|
|
417
|
+
var safraPfObject = requiredObject({
|
|
351
418
|
...formalizationExtras,
|
|
352
419
|
name: textField(),
|
|
353
420
|
cep: cepSchema,
|
|
@@ -356,12 +423,12 @@ var safraPfObject = zod.z.object({
|
|
|
356
423
|
birth_date: birthDateSchema,
|
|
357
424
|
number: textField(),
|
|
358
425
|
sex: SexEnum,
|
|
359
|
-
complement: textField(15)
|
|
426
|
+
complement: optionalField(textField(15)),
|
|
360
427
|
mother_name: textField(),
|
|
361
428
|
district: textField(),
|
|
362
429
|
energy_account_in_requester_name: textField(),
|
|
363
430
|
city: textField(),
|
|
364
|
-
energy_bill_owner_document: cpfCnpjSchema
|
|
431
|
+
energy_bill_owner_document: optionalField(cpfCnpjSchema),
|
|
365
432
|
state: UfEnum,
|
|
366
433
|
nationality: NationalityEnum.default(NATIONALITY_BRAZIL),
|
|
367
434
|
cellphone: phoneBRSchema,
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { safraPfObject, safraPfSchema } from '../../../chunk-
|
|
2
|
-
import '../../../chunk-
|
|
3
|
-
import '../../../chunk-
|
|
1
|
+
export { safraPfObject, safraPfSchema } from '../../../chunk-VTTNXB64.mjs';
|
|
2
|
+
import '../../../chunk-QEPJ2RLU.mjs';
|
|
3
|
+
import '../../../chunk-CJSJ3VDW.mjs';
|