@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.
Files changed (164) hide show
  1. package/{chunk-HMC73HBG.mjs → chunk-4T4DDJJZ.mjs} +7 -7
  2. package/{chunk-DIYEI2PA.mjs → chunk-65WB3CQB.mjs} +9 -9
  3. package/{chunk-VP4HT24O.mjs → chunk-6AISIJ3O.mjs} +7 -7
  4. package/{chunk-LU5ODSGQ.mjs → chunk-7ULQG7YJ.mjs} +9 -9
  5. package/{chunk-QMODZE4A.mjs → chunk-7VU2KIBV.mjs} +7 -7
  6. package/chunk-BXLQYGEB.mjs +105 -0
  7. package/{chunk-VDFDTLU5.mjs → chunk-CGBX6OCD.mjs} +7 -7
  8. package/{chunk-ENDOIQ32.mjs → chunk-CJSJ3VDW.mjs} +138 -60
  9. package/{chunk-6ZUOXZY3.mjs → chunk-EG5RVHCZ.mjs} +9 -9
  10. package/{chunk-5EHEC3RT.mjs → chunk-F4RMWUXJ.mjs} +10 -10
  11. package/{chunk-KJTTMDZP.mjs → chunk-GBKY6QE3.mjs} +7 -7
  12. package/{chunk-AM7HTUI3.mjs → chunk-HF7G6PTH.mjs} +9 -9
  13. package/{chunk-65EE5FW3.mjs → chunk-HX5UJCA2.mjs} +7 -7
  14. package/{chunk-L3OISOZA.mjs → chunk-HXHJSQ2X.mjs} +9 -9
  15. package/{chunk-UF45URAJ.mjs → chunk-IVY6IQXZ.mjs} +9 -9
  16. package/{chunk-FBDTG3WD.mjs → chunk-K3QXEL6M.mjs} +20 -21
  17. package/{chunk-CPDLICOP.mjs → chunk-LDL7QLPB.mjs} +7 -7
  18. package/{chunk-ORQ52KPA.mjs → chunk-LRIO6V7H.mjs} +7 -7
  19. package/{chunk-MM6LQXI6.mjs → chunk-OIGZEDM3.mjs} +7 -7
  20. package/{chunk-PDBPFNAN.mjs → chunk-OJUTNXHL.mjs} +136 -39
  21. package/{chunk-KBILM3GO.mjs → chunk-OKAMQBUN.mjs} +7 -7
  22. package/{chunk-TDL42FZZ.mjs → chunk-PCTF5JYB.mjs} +9 -9
  23. package/{chunk-2BHUMNK5.mjs → chunk-PCXYLWDD.mjs} +9 -9
  24. package/chunk-QEPJ2RLU.mjs +18 -0
  25. package/{chunk-5P6NWFTX.mjs → chunk-QQCSQ3L4.mjs} +10 -10
  26. package/{chunk-TKHIBI4R.mjs → chunk-R5TJYTTO.mjs} +9 -9
  27. package/{chunk-U4ZDMJX2.mjs → chunk-T2FBV7WO.mjs} +10 -10
  28. package/{chunk-RWOX5QO3.mjs → chunk-TNZ33455.mjs} +7 -7
  29. package/{chunk-Y67MNG2X.mjs → chunk-TWOBBIQC.mjs} +9 -9
  30. package/{chunk-22SYVROO.mjs → chunk-TZEPVIC4.mjs} +9 -9
  31. package/{chunk-FIPFWGBQ.mjs → chunk-UK62IINL.mjs} +7 -7
  32. package/{chunk-BYAXV4TG.mjs → chunk-VTTNXB64.mjs} +7 -7
  33. package/{chunk-DJDG3UYR.mjs → chunk-VWKF4I2L.mjs} +9 -9
  34. package/financing/formalization/index.d.cts +4848 -19624
  35. package/financing/formalization/index.d.ts +4848 -19624
  36. package/financing/formalization/index.js +516 -278
  37. package/financing/formalization/index.mjs +33 -33
  38. package/financing/formalization/schemas/AlfaPFSchema.d.cts +107 -395
  39. package/financing/formalization/schemas/AlfaPFSchema.d.ts +107 -395
  40. package/financing/formalization/schemas/AlfaPFSchema.js +127 -47
  41. package/financing/formalization/schemas/AlfaPFSchema.mjs +3 -3
  42. package/financing/formalization/schemas/AlfaPJSchema.d.cts +119 -621
  43. package/financing/formalization/schemas/AlfaPJSchema.d.ts +119 -621
  44. package/financing/formalization/schemas/AlfaPJSchema.js +188 -46
  45. package/financing/formalization/schemas/AlfaPJSchema.mjs +2 -2
  46. package/financing/formalization/schemas/BancoDoBrasilPFSchema.d.cts +107 -395
  47. package/financing/formalization/schemas/BancoDoBrasilPFSchema.d.ts +107 -395
  48. package/financing/formalization/schemas/BancoDoBrasilPFSchema.js +127 -47
  49. package/financing/formalization/schemas/BancoDoBrasilPFSchema.mjs +3 -3
  50. package/financing/formalization/schemas/BancoDoBrasilPJSchema.d.cts +119 -621
  51. package/financing/formalization/schemas/BancoDoBrasilPJSchema.d.ts +119 -621
  52. package/financing/formalization/schemas/BancoDoBrasilPJSchema.js +188 -46
  53. package/financing/formalization/schemas/BancoDoBrasilPJSchema.mjs +2 -2
  54. package/financing/formalization/schemas/BtgPFSchema.d.cts +107 -395
  55. package/financing/formalization/schemas/BtgPFSchema.d.ts +107 -395
  56. package/financing/formalization/schemas/BtgPFSchema.js +127 -47
  57. package/financing/formalization/schemas/BtgPFSchema.mjs +3 -3
  58. package/financing/formalization/schemas/BtgPJSchema.d.cts +147 -747
  59. package/financing/formalization/schemas/BtgPJSchema.d.ts +147 -747
  60. package/financing/formalization/schemas/BtgPJSchema.js +193 -47
  61. package/financing/formalization/schemas/BtgPJSchema.mjs +3 -3
  62. package/financing/formalization/schemas/BvPFSchema.d.cts +125 -477
  63. package/financing/formalization/schemas/BvPFSchema.d.ts +125 -477
  64. package/financing/formalization/schemas/BvPFSchema.js +129 -49
  65. package/financing/formalization/schemas/BvPFSchema.mjs +3 -3
  66. package/financing/formalization/schemas/BvPJSchema.d.cts +149 -819
  67. package/financing/formalization/schemas/BvPJSchema.d.ts +149 -819
  68. package/financing/formalization/schemas/BvPJSchema.js +193 -47
  69. package/financing/formalization/schemas/BvPJSchema.mjs +3 -3
  70. package/financing/formalization/schemas/CaixaEconomicaFederalPFSchema.d.cts +107 -395
  71. package/financing/formalization/schemas/CaixaEconomicaFederalPFSchema.d.ts +107 -395
  72. package/financing/formalization/schemas/CaixaEconomicaFederalPFSchema.js +127 -47
  73. package/financing/formalization/schemas/CaixaEconomicaFederalPFSchema.mjs +3 -3
  74. package/financing/formalization/schemas/CaixaEconomicaFederalPJSchema.d.cts +119 -621
  75. package/financing/formalization/schemas/CaixaEconomicaFederalPJSchema.d.ts +119 -621
  76. package/financing/formalization/schemas/CaixaEconomicaFederalPJSchema.js +188 -46
  77. package/financing/formalization/schemas/CaixaEconomicaFederalPJSchema.mjs +2 -2
  78. package/financing/formalization/schemas/CashMePFSchema.d.cts +107 -395
  79. package/financing/formalization/schemas/CashMePFSchema.d.ts +107 -395
  80. package/financing/formalization/schemas/CashMePFSchema.js +127 -47
  81. package/financing/formalization/schemas/CashMePFSchema.mjs +3 -3
  82. package/financing/formalization/schemas/CashMePJSchema.d.cts +119 -621
  83. package/financing/formalization/schemas/CashMePJSchema.d.ts +119 -621
  84. package/financing/formalization/schemas/CashMePJSchema.js +188 -46
  85. package/financing/formalization/schemas/CashMePJSchema.mjs +2 -2
  86. package/financing/formalization/schemas/Credito77PFSchema.d.cts +107 -395
  87. package/financing/formalization/schemas/Credito77PFSchema.d.ts +107 -395
  88. package/financing/formalization/schemas/Credito77PFSchema.js +127 -47
  89. package/financing/formalization/schemas/Credito77PFSchema.mjs +3 -3
  90. package/financing/formalization/schemas/Credito77PJSchema.d.cts +119 -621
  91. package/financing/formalization/schemas/Credito77PJSchema.d.ts +119 -621
  92. package/financing/formalization/schemas/Credito77PJSchema.js +188 -46
  93. package/financing/formalization/schemas/Credito77PJSchema.mjs +2 -2
  94. package/financing/formalization/schemas/EosPFSchema.d.cts +107 -395
  95. package/financing/formalization/schemas/EosPFSchema.d.ts +107 -395
  96. package/financing/formalization/schemas/EosPFSchema.js +127 -47
  97. package/financing/formalization/schemas/EosPFSchema.mjs +3 -3
  98. package/financing/formalization/schemas/EosPJSchema.d.cts +119 -621
  99. package/financing/formalization/schemas/EosPJSchema.d.ts +119 -621
  100. package/financing/formalization/schemas/EosPJSchema.js +188 -46
  101. package/financing/formalization/schemas/EosPJSchema.mjs +2 -2
  102. package/financing/formalization/schemas/HdtEnergyPFSchema.d.cts +107 -395
  103. package/financing/formalization/schemas/HdtEnergyPFSchema.d.ts +107 -395
  104. package/financing/formalization/schemas/HdtEnergyPFSchema.js +127 -47
  105. package/financing/formalization/schemas/HdtEnergyPFSchema.mjs +3 -3
  106. package/financing/formalization/schemas/HdtEnergyPJSchema.d.cts +119 -621
  107. package/financing/formalization/schemas/HdtEnergyPJSchema.d.ts +119 -621
  108. package/financing/formalization/schemas/HdtEnergyPJSchema.js +188 -46
  109. package/financing/formalization/schemas/HdtEnergyPJSchema.mjs +2 -2
  110. package/financing/formalization/schemas/LosangoPFSchema.d.cts +107 -395
  111. package/financing/formalization/schemas/LosangoPFSchema.d.ts +107 -395
  112. package/financing/formalization/schemas/LosangoPFSchema.js +127 -47
  113. package/financing/formalization/schemas/LosangoPFSchema.mjs +3 -3
  114. package/financing/formalization/schemas/LosangoPJSchema.d.cts +119 -621
  115. package/financing/formalization/schemas/LosangoPJSchema.d.ts +119 -621
  116. package/financing/formalization/schemas/LosangoPJSchema.js +188 -46
  117. package/financing/formalization/schemas/LosangoPJSchema.mjs +2 -2
  118. package/financing/formalization/schemas/SafraPFSchema.d.cts +107 -395
  119. package/financing/formalization/schemas/SafraPFSchema.d.ts +107 -395
  120. package/financing/formalization/schemas/SafraPFSchema.js +127 -47
  121. package/financing/formalization/schemas/SafraPFSchema.mjs +3 -3
  122. package/financing/formalization/schemas/SafraPJSchema.d.cts +119 -621
  123. package/financing/formalization/schemas/SafraPJSchema.d.ts +119 -621
  124. package/financing/formalization/schemas/SafraPJSchema.js +188 -46
  125. package/financing/formalization/schemas/SafraPJSchema.mjs +2 -2
  126. package/financing/formalization/schemas/SantanderPFSchema.d.cts +107 -395
  127. package/financing/formalization/schemas/SantanderPFSchema.d.ts +107 -395
  128. package/financing/formalization/schemas/SantanderPFSchema.js +127 -47
  129. package/financing/formalization/schemas/SantanderPFSchema.mjs +3 -3
  130. package/financing/formalization/schemas/SantanderPJSchema.d.cts +119 -621
  131. package/financing/formalization/schemas/SantanderPJSchema.d.ts +119 -621
  132. package/financing/formalization/schemas/SantanderPJSchema.js +188 -46
  133. package/financing/formalization/schemas/SantanderPJSchema.mjs +2 -2
  134. package/financing/formalization/schemas/SolAgoraPFSchema.d.cts +107 -395
  135. package/financing/formalization/schemas/SolAgoraPFSchema.d.ts +107 -395
  136. package/financing/formalization/schemas/SolAgoraPFSchema.js +127 -47
  137. package/financing/formalization/schemas/SolAgoraPFSchema.mjs +3 -3
  138. package/financing/formalization/schemas/SolAgoraPJSchema.d.cts +145 -725
  139. package/financing/formalization/schemas/SolAgoraPJSchema.d.ts +145 -725
  140. package/financing/formalization/schemas/SolAgoraPJSchema.js +193 -47
  141. package/financing/formalization/schemas/SolAgoraPJSchema.mjs +3 -3
  142. package/financing/formalization/schemas/SolfacilPFSchema.d.cts +107 -395
  143. package/financing/formalization/schemas/SolfacilPFSchema.d.ts +107 -395
  144. package/financing/formalization/schemas/SolfacilPFSchema.js +127 -47
  145. package/financing/formalization/schemas/SolfacilPFSchema.mjs +3 -3
  146. package/financing/formalization/schemas/SolfacilPJSchema.d.cts +131 -679
  147. package/financing/formalization/schemas/SolfacilPJSchema.d.ts +131 -679
  148. package/financing/formalization/schemas/SolfacilPJSchema.js +188 -46
  149. package/financing/formalization/schemas/SolfacilPJSchema.mjs +2 -2
  150. package/financing/formalization/schemas/UnifiedPFSchema.d.cts +185 -557
  151. package/financing/formalization/schemas/UnifiedPFSchema.d.ts +185 -557
  152. package/financing/formalization/schemas/UnifiedPFSchema.js +141 -61
  153. package/financing/formalization/schemas/UnifiedPFSchema.mjs +3 -3
  154. package/financing/formalization/schemas/UnifiedPJSchema.d.cts +265 -1269
  155. package/financing/formalization/schemas/UnifiedPJSchema.d.ts +265 -1269
  156. package/financing/formalization/schemas/UnifiedPJSchema.js +238 -92
  157. package/financing/formalization/schemas/UnifiedPJSchema.mjs +3 -3
  158. package/index.d.cts +2 -1
  159. package/index.d.ts +2 -1
  160. package/index.js +516 -278
  161. package/index.mjs +33 -33
  162. package/package.json +2 -2
  163. package/chunk-4PZYGTUU.mjs +0 -105
  164. package/chunk-JZ7DY7SU.mjs +0 -13
@@ -2,43 +2,76 @@
2
2
 
3
3
  var zod = require('zod');
4
4
 
5
- // src/domains/financing/formalization/schemas/CaixaEconomicaFederalPJSchema.ts
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(REQUIRED_STRING_PARAMS);
8
+ return zod.z.string({ error: REQUIRED_MESSAGE });
13
9
  }
14
- function textField(maxLength) {
15
- const base = requiredString().trim().min(1, REQUIRED_MESSAGE);
16
- return maxLength === void 0 ? base : base.max(maxLength, `M\xE1ximo ${maxLength} caracteres`);
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
- zod.z.number({ required_error: REQUIRED_MESSAGE, invalid_type_error: "Valor num\xE9rico inv\xE1lido" }).nonnegative("Valor n\xE3o pode ser negativo");
19
- zod.z.number({ required_error: REQUIRED_MESSAGE, invalid_type_error: "Valor num\xE9rico inv\xE1lido" }).int("Deve ser um n\xFAmero inteiro").nonnegative("Valor n\xE3o pode ser negativo");
20
- function enumField(values) {
21
- return zod.z.enum(values, {
22
- errorMap: (issue, ctx) => {
23
- if (issue.code === zod.z.ZodIssueCode.invalid_type || issue.code === zod.z.ZodIssueCode.invalid_enum_value && issue.received === "") {
24
- return { message: REQUIRED_MESSAGE };
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 { message: ctx.defaultError };
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 fileUploadField = zod.z.object(
33
- {
34
- url: zod.z.string().url().optional(),
35
- mime: zod.z.enum(ACCEPTED_UPLOAD_MIME, {
36
- errorMap: () => ({ message: "Formato deve ser JPEG, PNG ou PDF" })
37
- }),
38
- sizeBytes: zod.z.number().max(MAX_UPLOAD_BYTES, "Arquivo deve ter no m\xE1ximo 5MB")
39
- },
40
- REQUIRED_STRING_PARAMS
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 trimmed = value.trim();
225
- if (trimmed === "") {
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
- var currencySchema = zod.z.preprocess(
233
- parseBRLCurrency,
234
- zod.z.number({ required_error: REQUIRED_MESSAGE, invalid_type_error: "Valor monet\xE1rio inv\xE1lido" }).positive("Valor deve ser positivo")
235
- );
236
- zod.z.number({ required_error: REQUIRED_MESSAGE, invalid_type_error: "Valor num\xE9rico inv\xE1lido" }).int("Deve ser um n\xFAmero inteiro").min(1, "M\xEDnimo 1").max(28, "M\xE1ximo 28");
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.optional(),
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: zod.z.ZodIssueCode.custom,
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: zod.z.ZodIssueCode.custom,
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/CaixaEconomicaFederalPJSchema.ts
270
- var caixaEconomicaFederalPjObject = zod.z.object({
412
+ var caixaEconomicaFederalPjObject = requiredObject({
271
413
  ...formalizationExtras,
272
- financing_company: zod.z.object({
414
+ financing_company: requiredObject({
273
415
  corporate_name: textField(),
274
416
  cep: cepSchema,
275
417
  address: textField(),
@@ -277,7 +419,7 @@ var caixaEconomicaFederalPjObject = zod.z.object({
277
419
  number: textField(),
278
420
  cnpj: cnpjSchema,
279
421
  email: emailSchema,
280
- complement: textField(15).optional(),
422
+ complement: optionalField(textField(15)),
281
423
  phone: phoneBRSchema,
282
424
  district: textField(),
283
425
  legal_nature: textField(),
@@ -287,15 +429,15 @@ var caixaEconomicaFederalPjObject = zod.z.object({
287
429
  economic_activity: textField(),
288
430
  monthly_income: currencySchema
289
431
  }).strict(),
290
- financing_company_guarantor: zod.z.array(
291
- zod.z.object({
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).optional(),
440
+ complement: optionalField(textField(15)),
299
441
  cellphone: phoneBRSchema,
300
442
  email: emailSchema,
301
443
  district: textField(),
@@ -308,7 +450,7 @@ var caixaEconomicaFederalPjObject = zod.z.object({
308
450
  }).strict()
309
451
  )
310
452
  });
311
- var caixaEconomicaFederalPjSchema = caixaEconomicaFederalPjObject.strict().superRefine(applyPjRefinements);
453
+ var caixaEconomicaFederalPjSchema = caixaEconomicaFederalPjObject.strict().check(pjRefinement);
312
454
 
313
455
  exports.caixaEconomicaFederalPjObject = caixaEconomicaFederalPjObject;
314
456
  exports.caixaEconomicaFederalPjSchema = caixaEconomicaFederalPjSchema;
@@ -1,2 +1,2 @@
1
- export { caixaEconomicaFederalPjObject, caixaEconomicaFederalPjSchema } from '../../../chunk-UF45URAJ.mjs';
2
- import '../../../chunk-ENDOIQ32.mjs';
1
+ export { caixaEconomicaFederalPjObject, caixaEconomicaFederalPjSchema } from '../../../chunk-IVY6IQXZ.mjs';
2
+ import '../../../chunk-CJSJ3VDW.mjs';