@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,48 +2,80 @@
2
2
 
3
3
  var zod = require('zod');
4
4
 
5
- // src/domains/financing/formalization/schemas/Credito77PFSchema.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 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 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
- );
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 trimmed = value.trim();
238
- if (trimmed === "") {
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
- var currencySchema = zod.z.preprocess(
246
- parseBRLCurrency,
247
- zod.z.number({ required_error: REQUIRED_MESSAGE, invalid_type_error: "Valor monet\xE1rio inv\xE1lido" }).positive("Valor deve ser positivo")
248
- );
249
- 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");
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.optional(),
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: zod.z.ZodIssueCode.custom,
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: zod.z.ZodIssueCode.custom,
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: zod.z.ZodIssueCode.custom,
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: zod.z.ZodIssueCode.custom,
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: zod.z.ZodIssueCode.custom,
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 = zod.z.object({
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).optional(),
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.optional(),
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().superRefine(applyPfRefinements);
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-KJTTMDZP.mjs';
2
- import '../../../chunk-JZ7DY7SU.mjs';
3
- import '../../../chunk-ENDOIQ32.mjs';
1
+ export { credito77PfObject, credito77PfSchema } from '../../../chunk-GBKY6QE3.mjs';
2
+ import '../../../chunk-QEPJ2RLU.mjs';
3
+ import '../../../chunk-CJSJ3VDW.mjs';