@77sol-lab/form-schemas 1.5.0 → 1.6.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 (160) hide show
  1. package/{chunk-OARPUXXM.mjs → chunk-2ZKUSLGU.mjs} +2 -2
  2. package/{chunk-5C4YMHXV.mjs → chunk-35IKZUF4.mjs} +2 -2
  3. package/{chunk-YIUJVGT4.mjs → chunk-57DSP6GG.mjs} +1 -1
  4. package/{chunk-HBTFOSJU.mjs → chunk-5YFVPFSM.mjs} +83 -28
  5. package/{chunk-53GXILC6.mjs → chunk-66Y3FO5R.mjs} +2 -2
  6. package/{chunk-VO573WIK.mjs → chunk-ACJUTGEC.mjs} +1 -1
  7. package/{chunk-6YS5KBXS.mjs → chunk-AQ43O5UO.mjs} +44 -35
  8. package/{chunk-7ZF45QUN.mjs → chunk-BITN6YDR.mjs} +2 -2
  9. package/{chunk-G5SKXDYM.mjs → chunk-BRBOOPFN.mjs} +2 -2
  10. package/{chunk-UU3MRKTH.mjs → chunk-BSG5DCL7.mjs} +1 -1
  11. package/{chunk-7I2LXGA2.mjs → chunk-CSGG5DZE.mjs} +2 -2
  12. package/{chunk-NCTEG6EL.mjs → chunk-E7JXDCBO.mjs} +2 -2
  13. package/{chunk-RYJSCFSY.mjs → chunk-GVOOT43S.mjs} +1 -1
  14. package/{chunk-GQ5G2YX4.mjs → chunk-ISJKYUMR.mjs} +2 -2
  15. package/{chunk-4XJZIRLT.mjs → chunk-JBTU6WKN.mjs} +2 -2
  16. package/{chunk-UMP5UF3U.mjs → chunk-K23FTEKB.mjs} +1 -1
  17. package/{chunk-OVANLPKX.mjs → chunk-LEUH6IFB.mjs} +2 -2
  18. package/{chunk-R6CEKWRQ.mjs → chunk-LOEAPRSO.mjs} +2 -2
  19. package/{chunk-N2IX5TRK.mjs → chunk-LVFKP46R.mjs} +2 -2
  20. package/{chunk-Z2TTZ3JJ.mjs → chunk-O5XQR5HN.mjs} +1 -1
  21. package/{chunk-IWSDOFBY.mjs → chunk-OFCVHF6Z.mjs} +2 -2
  22. package/{chunk-FPJKWVVF.mjs → chunk-PY7IUNIU.mjs} +1 -1
  23. package/{chunk-6PH42V5T.mjs → chunk-QUBWDT4D.mjs} +1 -1
  24. package/{chunk-WTHEEPBE.mjs → chunk-RDLOQ6HV.mjs} +1 -1
  25. package/{chunk-3OIG2FI5.mjs → chunk-SKSUT6CG.mjs} +2 -2
  26. package/{chunk-UUWULEKH.mjs → chunk-T2MFLA6J.mjs} +2 -2
  27. package/{chunk-H54QBCSW.mjs → chunk-UYCCHEM5.mjs} +2 -2
  28. package/{chunk-L4EWOROT.mjs → chunk-W6J3SW2H.mjs} +2 -2
  29. package/{chunk-7MWUETLP.mjs → chunk-WPJOW7IE.mjs} +2 -2
  30. package/{chunk-FRMGP3C3.mjs → chunk-X4LHQVVJ.mjs} +1 -1
  31. package/{chunk-2END6TYT.mjs → chunk-XVITSWCY.mjs} +1 -1
  32. package/{chunk-D2ZUTYWA.mjs → chunk-Y7TQ2NQ2.mjs} +17 -8
  33. package/{chunk-F27U6CXB.mjs → chunk-ZQ2PKLTM.mjs} +2 -2
  34. package/financing/formalization/index.d.cts +2173 -1306
  35. package/financing/formalization/index.d.ts +2173 -1306
  36. package/financing/formalization/index.js +111 -36
  37. package/financing/formalization/index.mjs +33 -33
  38. package/financing/formalization/schemas/AlfaPFSchema.d.cts +32 -24
  39. package/financing/formalization/schemas/AlfaPFSchema.d.ts +32 -24
  40. package/financing/formalization/schemas/AlfaPFSchema.js +76 -28
  41. package/financing/formalization/schemas/AlfaPFSchema.mjs +3 -3
  42. package/financing/formalization/schemas/AlfaPJSchema.d.cts +44 -36
  43. package/financing/formalization/schemas/AlfaPJSchema.d.ts +44 -36
  44. package/financing/formalization/schemas/AlfaPJSchema.js +73 -27
  45. package/financing/formalization/schemas/AlfaPJSchema.mjs +2 -2
  46. package/financing/formalization/schemas/BancoDoBrasilPFSchema.d.cts +32 -24
  47. package/financing/formalization/schemas/BancoDoBrasilPFSchema.d.ts +32 -24
  48. package/financing/formalization/schemas/BancoDoBrasilPFSchema.js +76 -28
  49. package/financing/formalization/schemas/BancoDoBrasilPFSchema.mjs +3 -3
  50. package/financing/formalization/schemas/BancoDoBrasilPJSchema.d.cts +44 -36
  51. package/financing/formalization/schemas/BancoDoBrasilPJSchema.d.ts +44 -36
  52. package/financing/formalization/schemas/BancoDoBrasilPJSchema.js +73 -27
  53. package/financing/formalization/schemas/BancoDoBrasilPJSchema.mjs +2 -2
  54. package/financing/formalization/schemas/BtgPFSchema.d.cts +32 -24
  55. package/financing/formalization/schemas/BtgPFSchema.d.ts +32 -24
  56. package/financing/formalization/schemas/BtgPFSchema.js +76 -28
  57. package/financing/formalization/schemas/BtgPFSchema.mjs +3 -3
  58. package/financing/formalization/schemas/BtgPJSchema.d.cts +80 -72
  59. package/financing/formalization/schemas/BtgPJSchema.d.ts +80 -72
  60. package/financing/formalization/schemas/BtgPJSchema.js +76 -28
  61. package/financing/formalization/schemas/BtgPJSchema.mjs +3 -3
  62. package/financing/formalization/schemas/BvPFSchema.d.cts +48 -40
  63. package/financing/formalization/schemas/BvPFSchema.d.ts +48 -40
  64. package/financing/formalization/schemas/BvPFSchema.js +76 -28
  65. package/financing/formalization/schemas/BvPFSchema.mjs +3 -3
  66. package/financing/formalization/schemas/BvPJSchema.d.cts +80 -72
  67. package/financing/formalization/schemas/BvPJSchema.d.ts +80 -72
  68. package/financing/formalization/schemas/BvPJSchema.js +76 -28
  69. package/financing/formalization/schemas/BvPJSchema.mjs +3 -3
  70. package/financing/formalization/schemas/CaixaEconomicaFederalPFSchema.d.cts +32 -24
  71. package/financing/formalization/schemas/CaixaEconomicaFederalPFSchema.d.ts +32 -24
  72. package/financing/formalization/schemas/CaixaEconomicaFederalPFSchema.js +76 -28
  73. package/financing/formalization/schemas/CaixaEconomicaFederalPFSchema.mjs +3 -3
  74. package/financing/formalization/schemas/CaixaEconomicaFederalPJSchema.d.cts +44 -36
  75. package/financing/formalization/schemas/CaixaEconomicaFederalPJSchema.d.ts +44 -36
  76. package/financing/formalization/schemas/CaixaEconomicaFederalPJSchema.js +73 -27
  77. package/financing/formalization/schemas/CaixaEconomicaFederalPJSchema.mjs +2 -2
  78. package/financing/formalization/schemas/CashMePFSchema.d.cts +32 -24
  79. package/financing/formalization/schemas/CashMePFSchema.d.ts +32 -24
  80. package/financing/formalization/schemas/CashMePFSchema.js +76 -28
  81. package/financing/formalization/schemas/CashMePFSchema.mjs +3 -3
  82. package/financing/formalization/schemas/CashMePJSchema.d.cts +44 -36
  83. package/financing/formalization/schemas/CashMePJSchema.d.ts +44 -36
  84. package/financing/formalization/schemas/CashMePJSchema.js +73 -27
  85. package/financing/formalization/schemas/CashMePJSchema.mjs +2 -2
  86. package/financing/formalization/schemas/Credito77PFSchema.d.cts +32 -24
  87. package/financing/formalization/schemas/Credito77PFSchema.d.ts +32 -24
  88. package/financing/formalization/schemas/Credito77PFSchema.js +76 -28
  89. package/financing/formalization/schemas/Credito77PFSchema.mjs +3 -3
  90. package/financing/formalization/schemas/Credito77PJSchema.d.cts +44 -36
  91. package/financing/formalization/schemas/Credito77PJSchema.d.ts +44 -36
  92. package/financing/formalization/schemas/Credito77PJSchema.js +73 -27
  93. package/financing/formalization/schemas/Credito77PJSchema.mjs +2 -2
  94. package/financing/formalization/schemas/EosPFSchema.d.cts +32 -24
  95. package/financing/formalization/schemas/EosPFSchema.d.ts +32 -24
  96. package/financing/formalization/schemas/EosPFSchema.js +76 -28
  97. package/financing/formalization/schemas/EosPFSchema.mjs +3 -3
  98. package/financing/formalization/schemas/EosPJSchema.d.cts +44 -36
  99. package/financing/formalization/schemas/EosPJSchema.d.ts +44 -36
  100. package/financing/formalization/schemas/EosPJSchema.js +73 -27
  101. package/financing/formalization/schemas/EosPJSchema.mjs +2 -2
  102. package/financing/formalization/schemas/HdtEnergyPFSchema.d.cts +32 -24
  103. package/financing/formalization/schemas/HdtEnergyPFSchema.d.ts +32 -24
  104. package/financing/formalization/schemas/HdtEnergyPFSchema.js +76 -28
  105. package/financing/formalization/schemas/HdtEnergyPFSchema.mjs +3 -3
  106. package/financing/formalization/schemas/HdtEnergyPJSchema.d.cts +44 -36
  107. package/financing/formalization/schemas/HdtEnergyPJSchema.d.ts +44 -36
  108. package/financing/formalization/schemas/HdtEnergyPJSchema.js +73 -27
  109. package/financing/formalization/schemas/HdtEnergyPJSchema.mjs +2 -2
  110. package/financing/formalization/schemas/LosangoPFSchema.d.cts +32 -24
  111. package/financing/formalization/schemas/LosangoPFSchema.d.ts +32 -24
  112. package/financing/formalization/schemas/LosangoPFSchema.js +76 -28
  113. package/financing/formalization/schemas/LosangoPFSchema.mjs +3 -3
  114. package/financing/formalization/schemas/LosangoPJSchema.d.cts +44 -36
  115. package/financing/formalization/schemas/LosangoPJSchema.d.ts +44 -36
  116. package/financing/formalization/schemas/LosangoPJSchema.js +73 -27
  117. package/financing/formalization/schemas/LosangoPJSchema.mjs +2 -2
  118. package/financing/formalization/schemas/SafraPFSchema.d.cts +32 -24
  119. package/financing/formalization/schemas/SafraPFSchema.d.ts +32 -24
  120. package/financing/formalization/schemas/SafraPFSchema.js +76 -28
  121. package/financing/formalization/schemas/SafraPFSchema.mjs +3 -3
  122. package/financing/formalization/schemas/SafraPJSchema.d.cts +44 -36
  123. package/financing/formalization/schemas/SafraPJSchema.d.ts +44 -36
  124. package/financing/formalization/schemas/SafraPJSchema.js +73 -27
  125. package/financing/formalization/schemas/SafraPJSchema.mjs +2 -2
  126. package/financing/formalization/schemas/SantanderPFSchema.d.cts +32 -24
  127. package/financing/formalization/schemas/SantanderPFSchema.d.ts +32 -24
  128. package/financing/formalization/schemas/SantanderPFSchema.js +76 -28
  129. package/financing/formalization/schemas/SantanderPFSchema.mjs +3 -3
  130. package/financing/formalization/schemas/SantanderPJSchema.d.cts +44 -36
  131. package/financing/formalization/schemas/SantanderPJSchema.d.ts +44 -36
  132. package/financing/formalization/schemas/SantanderPJSchema.js +73 -27
  133. package/financing/formalization/schemas/SantanderPJSchema.mjs +2 -2
  134. package/financing/formalization/schemas/SolAgoraPFSchema.d.cts +32 -24
  135. package/financing/formalization/schemas/SolAgoraPFSchema.d.ts +32 -24
  136. package/financing/formalization/schemas/SolAgoraPFSchema.js +76 -28
  137. package/financing/formalization/schemas/SolAgoraPFSchema.mjs +3 -3
  138. package/financing/formalization/schemas/SolAgoraPJSchema.d.cts +80 -72
  139. package/financing/formalization/schemas/SolAgoraPJSchema.d.ts +80 -72
  140. package/financing/formalization/schemas/SolAgoraPJSchema.js +76 -28
  141. package/financing/formalization/schemas/SolAgoraPJSchema.mjs +3 -3
  142. package/financing/formalization/schemas/SolfacilPFSchema.d.cts +32 -24
  143. package/financing/formalization/schemas/SolfacilPFSchema.d.ts +32 -24
  144. package/financing/formalization/schemas/SolfacilPFSchema.js +76 -28
  145. package/financing/formalization/schemas/SolfacilPFSchema.mjs +3 -3
  146. package/financing/formalization/schemas/SolfacilPJSchema.d.cts +56 -48
  147. package/financing/formalization/schemas/SolfacilPJSchema.d.ts +56 -48
  148. package/financing/formalization/schemas/SolfacilPJSchema.js +73 -27
  149. package/financing/formalization/schemas/SolfacilPJSchema.mjs +2 -2
  150. package/financing/formalization/schemas/UnifiedPFSchema.d.cts +98 -90
  151. package/financing/formalization/schemas/UnifiedPFSchema.d.ts +98 -90
  152. package/financing/formalization/schemas/UnifiedPFSchema.js +92 -34
  153. package/financing/formalization/schemas/UnifiedPFSchema.mjs +3 -3
  154. package/financing/formalization/schemas/UnifiedPJSchema.d.cts +164 -156
  155. package/financing/formalization/schemas/UnifiedPJSchema.d.ts +164 -156
  156. package/financing/formalization/schemas/UnifiedPJSchema.js +76 -28
  157. package/financing/formalization/schemas/UnifiedPJSchema.mjs +3 -3
  158. package/index.js +111 -36
  159. package/index.mjs +33 -33
  160. package/package.json +1 -1
@@ -3,12 +3,63 @@
3
3
  var zod = require('zod');
4
4
 
5
5
  // src/domains/financing/formalization/schemas/UnifiedPJSchema.ts
6
- var DocumentTypeEnum = zod.z.enum([
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
+ function requiredString() {
12
+ return zod.z.string(REQUIRED_STRING_PARAMS);
13
+ }
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`);
17
+ }
18
+ zod.z.number({ required_error: REQUIRED_MESSAGE, invalid_type_error: "Valor num\xE9rico inv\xE1lido" }).nonnegative("Valor n\xE3o pode ser negativo");
19
+ var integerField = 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 };
25
+ }
26
+ return { message: ctx.defaultError };
27
+ }
28
+ });
29
+ }
30
+ var MAX_UPLOAD_BYTES = 5 * 1024 * 1024;
31
+ 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
+ );
42
+
43
+ // src/shared/enums/document-type.ts
44
+ var DocumentTypeEnum = enumField([
7
45
  "documento_de_identidade",
8
46
  "carteira_nacional_de_habilita\xE7\xE3o"
9
47
  ]);
10
- var SexEnum = zod.z.enum(["masculino", "feminino"]);
11
- var UfEnum = zod.z.enum([
48
+
49
+ // src/shared/enums/proof-kinship-type.ts
50
+ var ProofKinshipTypeEnum = enumField([
51
+ "certidao_casamento",
52
+ "documento_identificacao",
53
+ "contrato_social",
54
+ "declaracao_parentesco",
55
+ "outro_documento"
56
+ ]);
57
+
58
+ // src/shared/enums/sex.ts
59
+ var SexEnum = enumField(["masculino", "feminino"]);
60
+
61
+ // src/shared/enums/uf.ts
62
+ var UfEnum = enumField([
12
63
  "AC",
13
64
  "AL",
14
65
  "AP",
@@ -37,21 +88,6 @@ var UfEnum = zod.z.enum([
37
88
  "SE",
38
89
  "TO"
39
90
  ]);
40
- function textField(maxLength) {
41
- const base = zod.z.string().trim().min(1, "Campo obrigat\xF3rio");
42
- return maxLength === void 0 ? base : base.max(maxLength, `M\xE1ximo ${maxLength} caracteres`);
43
- }
44
- zod.z.number({ invalid_type_error: "Valor num\xE9rico inv\xE1lido" }).nonnegative("Valor n\xE3o pode ser negativo");
45
- var integerField = zod.z.number({ invalid_type_error: "Valor num\xE9rico inv\xE1lido" }).int("Deve ser um n\xFAmero inteiro").nonnegative("Valor n\xE3o pode ser negativo");
46
- var MAX_UPLOAD_BYTES = 5 * 1024 * 1024;
47
- var ACCEPTED_UPLOAD_MIME = ["image/jpeg", "image/png", "application/pdf"];
48
- var fileUploadField = zod.z.object({
49
- url: zod.z.string().url().optional(),
50
- mime: zod.z.enum(ACCEPTED_UPLOAD_MIME, {
51
- errorMap: () => ({ message: "Formato deve ser JPEG, PNG ou PDF" })
52
- }),
53
- sizeBytes: zod.z.number().max(MAX_UPLOAD_BYTES, "Arquivo deve ter no m\xE1ximo 5MB")
54
- });
55
91
 
56
92
  // src/shared/regex/patterns.ts
57
93
  var PATTERNS = {
@@ -142,16 +178,16 @@ function isNotFutureDMY(value, reference = /* @__PURE__ */ new Date()) {
142
178
  }
143
179
 
144
180
  // src/shared/regex/index.ts
145
- var cpfSchema = zod.z.string().transform(onlyDigits).refine((v) => PATTERNS.cpf.test(v), "CPF inv\xE1lido").refine(isValidCPF, "CPF inv\xE1lido");
146
- var cnpjSchema = zod.z.string().transform(onlyDigits).refine((v) => PATTERNS.cnpj.test(v), "CNPJ inv\xE1lido").refine(isValidCNPJ, "CNPJ inv\xE1lido");
147
- zod.z.string().transform(onlyDigits).refine(
181
+ var cpfSchema = requiredString().transform(onlyDigits).refine((v) => PATTERNS.cpf.test(v), "CPF inv\xE1lido").refine(isValidCPF, "CPF inv\xE1lido");
182
+ var cnpjSchema = requiredString().transform(onlyDigits).refine((v) => PATTERNS.cnpj.test(v), "CNPJ inv\xE1lido").refine(isValidCNPJ, "CNPJ inv\xE1lido");
183
+ requiredString().transform(onlyDigits).refine(
148
184
  (v) => PATTERNS.cpf.test(v) || PATTERNS.cnpj.test(v),
149
185
  "Documento deve ter 11 (CPF) ou 14 (CNPJ) d\xEDgitos"
150
186
  ).refine((v) => v.length === 11 ? isValidCPF(v) : isValidCNPJ(v), "Documento inv\xE1lido");
151
- var cepSchema = zod.z.string().transform(onlyDigits).refine((v) => PATTERNS.cep.test(v), "CEP inv\xE1lido");
152
- var phoneBRSchema = zod.z.string().transform(onlyDigits).refine((v) => PATTERNS.phoneBR.test(v), "Telefone inv\xE1lido");
153
- var emailSchema = zod.z.string().trim().refine((v) => PATTERNS.email.test(v), "E-mail inv\xE1lido");
154
- var dateDMYSchema = zod.z.string().refine((v) => PATTERNS.dateDMY.test(v), "Data inv\xE1lida").refine((v) => parseDMY(v) !== null, "Data inexistente no calend\xE1rio");
187
+ var cepSchema = requiredString().transform(onlyDigits).refine((v) => PATTERNS.cep.test(v), "CEP inv\xE1lido");
188
+ var phoneBRSchema = requiredString().transform(onlyDigits).refine((v) => PATTERNS.phoneBR.test(v), "Telefone inv\xE1lido");
189
+ var emailSchema = requiredString().trim().refine((v) => PATTERNS.email.test(v), "E-mail inv\xE1lido");
190
+ var dateDMYSchema = requiredString().refine((v) => PATTERNS.dateDMY.test(v), "Data inv\xE1lida").refine((v) => parseDMY(v) !== null, "Data inexistente no calend\xE1rio");
155
191
  var birthDateSchema = dateDMYSchema.refine(
156
192
  (v) => isAdultDMY(v),
157
193
  "\xC9 necess\xE1rio ser maior de idade (18+)"
@@ -160,17 +196,29 @@ var issueDateSchema = dateDMYSchema.refine(
160
196
  (v) => isNotFutureDMY(v),
161
197
  "Data de emiss\xE3o n\xE3o pode ser futura"
162
198
  );
163
- var currencySchema = zod.z.number({ invalid_type_error: "Valor monet\xE1rio inv\xE1lido" }).positive("Valor deve ser positivo");
164
- zod.z.number().int("Deve ser um n\xFAmero inteiro").min(1, "M\xEDnimo 1").max(28, "M\xE1ximo 28");
199
+ var currencySchema = zod.z.number({ required_error: REQUIRED_MESSAGE, invalid_type_error: "Valor monet\xE1rio inv\xE1lido" }).positive("Valor deve ser positivo");
200
+ 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");
165
201
  var formalizationExtras = {
166
202
  voucher_local_installation_address: fileUploadField,
203
+ proof_kinship_type: ProofKinshipTypeEnum.optional(),
167
204
  proof_kinship: fileUploadField.optional(),
168
205
  document_front_upload: fileUploadField,
169
206
  document_back_upload: fileUploadField,
170
207
  rd_re_insurance_toggle: zod.z.boolean().default(true)
171
208
  };
172
209
  function applyCommonRefinements(data, ctx) {
173
- if ("energy_account_in_requester_name" in data && typeof data.energy_account_in_requester_name === "string" && data.energy_account_in_requester_name !== "nao_aplica" && !data.proof_kinship) {
210
+ const accountInThirdPartyName = data.energy_account_in_requester_name === "sim";
211
+ if (!accountInThirdPartyName) {
212
+ return;
213
+ }
214
+ if (!data.proof_kinship_type) {
215
+ ctx.addIssue({
216
+ code: zod.z.ZodIssueCode.custom,
217
+ path: ["proof_kinship_type"],
218
+ message: "Tipo de comprovante \xE9 obrigat\xF3rio quando a conta est\xE1 em nome de terceiro"
219
+ });
220
+ }
221
+ if (!data.proof_kinship) {
174
222
  ctx.addIssue({
175
223
  code: zod.z.ZodIssueCode.custom,
176
224
  path: ["proof_kinship"],
@@ -1,3 +1,3 @@
1
- export { unifiedPjObject, unifiedPjSchema } from '../../../chunk-NCTEG6EL.mjs';
2
- import '../../../chunk-7I2LXGA2.mjs';
3
- import '../../../chunk-HBTFOSJU.mjs';
1
+ export { unifiedPjObject, unifiedPjSchema } from '../../../chunk-E7JXDCBO.mjs';
2
+ import '../../../chunk-CSGG5DZE.mjs';
3
+ import '../../../chunk-5YFVPFSM.mjs';
package/index.js CHANGED
@@ -2,8 +2,46 @@
2
2
 
3
3
  var zod = require('zod');
4
4
 
5
+ // src/shared/fields/primitives.ts
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
+ function requiredString() {
12
+ return zod.z.string(REQUIRED_STRING_PARAMS);
13
+ }
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`);
17
+ }
18
+ var numberField = zod.z.number({ required_error: REQUIRED_MESSAGE, invalid_type_error: "Valor num\xE9rico inv\xE1lido" }).nonnegative("Valor n\xE3o pode ser negativo");
19
+ var integerField = 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 };
25
+ }
26
+ return { message: ctx.defaultError };
27
+ }
28
+ });
29
+ }
30
+ var MAX_UPLOAD_BYTES = 5 * 1024 * 1024;
31
+ 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
+ );
42
+
5
43
  // src/shared/enums/civil-status.ts
6
- var CivilStatusEnum = zod.z.enum([
44
+ var CivilStatusEnum = enumField([
7
45
  "solteiro",
8
46
  "casado",
9
47
  "divorciado",
@@ -19,7 +57,9 @@ var CivilStatusLabels = {
19
57
  separado_judicialmente: "Separado(a) judicialmente",
20
58
  companheiro: "Companheiro(a)"
21
59
  };
22
- var CommunionRegimeEnum = zod.z.enum([
60
+
61
+ // src/shared/enums/communion-regime.ts
62
+ var CommunionRegimeEnum = enumField([
23
63
  "comunhao_parcial",
24
64
  "comunhao_universal",
25
65
  "separacao_total",
@@ -31,7 +71,9 @@ var CommunionRegimeLabels = {
31
71
  separacao_total: "Separa\xE7\xE3o total de bens",
32
72
  participacao_final_aquestos: "Participa\xE7\xE3o final nos aquestos"
33
73
  };
34
- var DocumentTypeEnum = zod.z.enum([
74
+
75
+ // src/shared/enums/document-type.ts
76
+ var DocumentTypeEnum = enumField([
35
77
  "documento_de_identidade",
36
78
  "carteira_nacional_de_habilita\xE7\xE3o"
37
79
  ]);
@@ -42,14 +84,34 @@ var DocumentTypeLabels = {
42
84
 
43
85
  // src/shared/enums/nationality.ts
44
86
  var NATIONALITY_BRAZIL = "brasil";
45
- var NatureOfOccupationTypeEnum = zod.z.enum(["autonomo", "clt", "aposentado", "empresario"]);
87
+
88
+ // src/shared/enums/nature-of-occupation-type.ts
89
+ var NatureOfOccupationTypeEnum = enumField(["autonomo", "clt", "aposentado", "empresario"]);
46
90
  var NatureOfOccupationTypeLabels = {
47
91
  autonomo: "Aut\xF4nomo",
48
92
  clt: "CLT",
49
93
  aposentado: "Aposentado",
50
94
  empresario: "Empres\xE1rio"
51
95
  };
52
- var ResidenceTypeEnum = zod.z.enum([
96
+
97
+ // src/shared/enums/proof-kinship-type.ts
98
+ var ProofKinshipTypeEnum = enumField([
99
+ "certidao_casamento",
100
+ "documento_identificacao",
101
+ "contrato_social",
102
+ "declaracao_parentesco",
103
+ "outro_documento"
104
+ ]);
105
+ var ProofKinshipTypeLabels = {
106
+ certidao_casamento: "Certid\xE3o de casamento",
107
+ documento_identificacao: "Documento de identifica\xE7\xE3o",
108
+ contrato_social: "Contrato social",
109
+ declaracao_parentesco: "Declara\xE7\xE3o de parentesco",
110
+ outro_documento: "Outro documento"
111
+ };
112
+
113
+ // src/shared/enums/residence-type.ts
114
+ var ResidenceTypeEnum = enumField([
53
115
  "proprio",
54
116
  "familiar",
55
117
  "alugado",
@@ -63,12 +125,16 @@ var ResidenceTypeLabels = {
63
125
  proprio_financiado: "Pr\xF3prio financiado",
64
126
  cedido: "Cedido"
65
127
  };
66
- var SexEnum = zod.z.enum(["masculino", "feminino"]);
128
+
129
+ // src/shared/enums/sex.ts
130
+ var SexEnum = enumField(["masculino", "feminino"]);
67
131
  var SexLabels = {
68
132
  masculino: "Masculino",
69
133
  feminino: "Feminino"
70
134
  };
71
- var UfEnum = zod.z.enum([
135
+
136
+ // src/shared/enums/uf.ts
137
+ var UfEnum = enumField([
72
138
  "AC",
73
139
  "AL",
74
140
  "AP",
@@ -126,11 +192,15 @@ var UfLabels = {
126
192
  SE: "Sergipe",
127
193
  TO: "Tocantins"
128
194
  };
129
- var YesOrNoEnum = zod.z.enum(["sim", "nao"]);
195
+
196
+ // src/shared/enums/yes-or-not-type.ts
197
+ var YesOrNoEnum = enumField(["sim", "nao"]);
130
198
  var YesOrNoLabels = {
131
199
  sim: "Sim",
132
200
  nao: "N\xE3o"
133
201
  };
202
+
203
+ // src/domains/financing/enums/banks.ts
134
204
  var BANK_SLUGS = [
135
205
  "credito77",
136
206
  "losango",
@@ -147,7 +217,7 @@ var BANK_SLUGS = [
147
217
  "sol_agora",
148
218
  "eos"
149
219
  ];
150
- var BankEnum = zod.z.enum(BANK_SLUGS);
220
+ var BankEnum = enumField(BANK_SLUGS);
151
221
 
152
222
  // src/domains/financing/enums/civil-status.ts
153
223
  var CIVIL_STATUS_REQUIRING_PARTNER = ["casado"];
@@ -178,7 +248,9 @@ var FORMALIZATION_OPTION_LABELS = {
178
248
  uf_naturalness: UfLabels,
179
249
  emitting_state: UfLabels,
180
250
  uf_issuing_body: UfLabels,
181
- doc_issuance_uf: UfLabels
251
+ doc_issuance_uf: UfLabels,
252
+ energy_account_in_requester_name: YesOrNoLabels,
253
+ proof_kinship_type: ProofKinshipTypeLabels
182
254
  };
183
255
  function getFieldOptions(field) {
184
256
  const labels = FORMALIZATION_OPTION_LABELS[field];
@@ -284,16 +356,16 @@ function yearsSinceDMY(value, reference = /* @__PURE__ */ new Date()) {
284
356
  }
285
357
 
286
358
  // src/shared/regex/index.ts
287
- var cpfSchema = zod.z.string().transform(onlyDigits).refine((v) => PATTERNS.cpf.test(v), "CPF inv\xE1lido").refine(isValidCPF, "CPF inv\xE1lido");
288
- var cnpjSchema = zod.z.string().transform(onlyDigits).refine((v) => PATTERNS.cnpj.test(v), "CNPJ inv\xE1lido").refine(isValidCNPJ, "CNPJ inv\xE1lido");
289
- var cpfCnpjSchema = zod.z.string().transform(onlyDigits).refine(
359
+ var cpfSchema = requiredString().transform(onlyDigits).refine((v) => PATTERNS.cpf.test(v), "CPF inv\xE1lido").refine(isValidCPF, "CPF inv\xE1lido");
360
+ var cnpjSchema = requiredString().transform(onlyDigits).refine((v) => PATTERNS.cnpj.test(v), "CNPJ inv\xE1lido").refine(isValidCNPJ, "CNPJ inv\xE1lido");
361
+ var cpfCnpjSchema = requiredString().transform(onlyDigits).refine(
290
362
  (v) => PATTERNS.cpf.test(v) || PATTERNS.cnpj.test(v),
291
363
  "Documento deve ter 11 (CPF) ou 14 (CNPJ) d\xEDgitos"
292
364
  ).refine((v) => v.length === 11 ? isValidCPF(v) : isValidCNPJ(v), "Documento inv\xE1lido");
293
- var cepSchema = zod.z.string().transform(onlyDigits).refine((v) => PATTERNS.cep.test(v), "CEP inv\xE1lido");
294
- var phoneBRSchema = zod.z.string().transform(onlyDigits).refine((v) => PATTERNS.phoneBR.test(v), "Telefone inv\xE1lido");
295
- var emailSchema = zod.z.string().trim().refine((v) => PATTERNS.email.test(v), "E-mail inv\xE1lido");
296
- var dateDMYSchema = zod.z.string().refine((v) => PATTERNS.dateDMY.test(v), "Data inv\xE1lida").refine((v) => parseDMY(v) !== null, "Data inexistente no calend\xE1rio");
365
+ var cepSchema = requiredString().transform(onlyDigits).refine((v) => PATTERNS.cep.test(v), "CEP inv\xE1lido");
366
+ var phoneBRSchema = requiredString().transform(onlyDigits).refine((v) => PATTERNS.phoneBR.test(v), "Telefone inv\xE1lido");
367
+ var emailSchema = requiredString().trim().refine((v) => PATTERNS.email.test(v), "E-mail inv\xE1lido");
368
+ var dateDMYSchema = requiredString().refine((v) => PATTERNS.dateDMY.test(v), "Data inv\xE1lida").refine((v) => parseDMY(v) !== null, "Data inexistente no calend\xE1rio");
297
369
  var birthDateSchema = dateDMYSchema.refine(
298
370
  (v) => isAdultDMY(v),
299
371
  "\xC9 necess\xE1rio ser maior de idade (18+)"
@@ -302,8 +374,8 @@ var issueDateSchema = dateDMYSchema.refine(
302
374
  (v) => isNotFutureDMY(v),
303
375
  "Data de emiss\xE3o n\xE3o pode ser futura"
304
376
  );
305
- var currencySchema = zod.z.number({ invalid_type_error: "Valor monet\xE1rio inv\xE1lido" }).positive("Valor deve ser positivo");
306
- zod.z.number().int("Deve ser um n\xFAmero inteiro").min(1, "M\xEDnimo 1").max(28, "M\xE1ximo 28");
377
+ var currencySchema = zod.z.number({ required_error: REQUIRED_MESSAGE, invalid_type_error: "Valor monet\xE1rio inv\xE1lido" }).positive("Valor deve ser positivo");
378
+ 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");
307
379
 
308
380
  // src/domains/financing/formalization/refinements.ts
309
381
  var RG_MAX_EMISSION_YEARS = 10;
@@ -326,7 +398,18 @@ function applyPartnerRefinement(data, ctx) {
326
398
  }
327
399
  }
328
400
  function applyCommonRefinements(data, ctx) {
329
- if ("energy_account_in_requester_name" in data && typeof data.energy_account_in_requester_name === "string" && data.energy_account_in_requester_name !== "nao_aplica" && !data.proof_kinship) {
401
+ const accountInThirdPartyName = data.energy_account_in_requester_name === "sim";
402
+ if (!accountInThirdPartyName) {
403
+ return;
404
+ }
405
+ if (!data.proof_kinship_type) {
406
+ ctx.addIssue({
407
+ code: zod.z.ZodIssueCode.custom,
408
+ path: ["proof_kinship_type"],
409
+ message: "Tipo de comprovante \xE9 obrigat\xF3rio quando a conta est\xE1 em nome de terceiro"
410
+ });
411
+ }
412
+ if (!data.proof_kinship) {
330
413
  ctx.addIssue({
331
414
  code: zod.z.ZodIssueCode.custom,
332
415
  path: ["proof_kinship"],
@@ -358,23 +441,9 @@ function applyPfRefinements(data, ctx) {
358
441
  function applyPjRefinements(data, ctx) {
359
442
  applyCommonRefinements(data, ctx);
360
443
  }
361
- function textField(maxLength) {
362
- const base = zod.z.string().trim().min(1, "Campo obrigat\xF3rio");
363
- return maxLength === void 0 ? base : base.max(maxLength, `M\xE1ximo ${maxLength} caracteres`);
364
- }
365
- var numberField = zod.z.number({ invalid_type_error: "Valor num\xE9rico inv\xE1lido" }).nonnegative("Valor n\xE3o pode ser negativo");
366
- var integerField = zod.z.number({ invalid_type_error: "Valor num\xE9rico inv\xE1lido" }).int("Deve ser um n\xFAmero inteiro").nonnegative("Valor n\xE3o pode ser negativo");
367
- var MAX_UPLOAD_BYTES = 5 * 1024 * 1024;
368
- var ACCEPTED_UPLOAD_MIME = ["image/jpeg", "image/png", "application/pdf"];
369
- var fileUploadField = zod.z.object({
370
- url: zod.z.string().url().optional(),
371
- mime: zod.z.enum(ACCEPTED_UPLOAD_MIME, {
372
- errorMap: () => ({ message: "Formato deve ser JPEG, PNG ou PDF" })
373
- }),
374
- sizeBytes: zod.z.number().max(MAX_UPLOAD_BYTES, "Arquivo deve ter no m\xE1ximo 5MB")
375
- });
376
444
  var formalizationExtras = {
377
445
  voucher_local_installation_address: fileUploadField,
446
+ proof_kinship_type: ProofKinshipTypeEnum.optional(),
378
447
  proof_kinship: fileUploadField.optional(),
379
448
  document_front_upload: fileUploadField,
380
449
  document_back_upload: fileUploadField,
@@ -1414,7 +1483,7 @@ var unifiedPfObject = zod.z.object({
1414
1483
  complement: textField(15).optional(),
1415
1484
  mother_name: textField(),
1416
1485
  district: textField(),
1417
- energy_account_in_requester_name: textField(),
1486
+ energy_account_in_requester_name: YesOrNoEnum,
1418
1487
  city: textField(),
1419
1488
  energy_bill_owner_document: cpfCnpjSchema.optional(),
1420
1489
  state: UfEnum,
@@ -1665,6 +1734,12 @@ var FORMALIZATION_FIELD_META = {
1665
1734
  step: 1,
1666
1735
  placeholder: "Selecione uma op\xE7\xE3o"
1667
1736
  },
1737
+ proof_kinship_type: {
1738
+ kind: "select",
1739
+ label: "Tipo de comprovante",
1740
+ step: 1,
1741
+ placeholder: "Selecione uma op\xE7\xE3o"
1742
+ },
1668
1743
  proof_kinship: {
1669
1744
  kind: "file",
1670
1745
  label: "Documento de v\xEDnculo com o titular",
package/index.mjs CHANGED
@@ -1,33 +1,33 @@
1
- export { BANK_SLUGS, BankEnum, FORMALIZATION_FIELD_META, FORMALIZATION_OPTION_LABELS, NATIONALITY_BRAZIL, UNIFIED_SLUG, getFieldOptions, getFormalizationBaseSchema, getFormalizationSchema, pfBaseSchemaRegistry, pfSchemaRegistry, pjBaseSchemaRegistry, pjSchemaRegistry } from './chunk-6YS5KBXS.mjs';
2
- import './chunk-UUWULEKH.mjs';
3
- import './chunk-RYJSCFSY.mjs';
4
- import './chunk-H54QBCSW.mjs';
5
- import './chunk-R6CEKWRQ.mjs';
6
- import './chunk-F27U6CXB.mjs';
7
- import './chunk-Z2TTZ3JJ.mjs';
8
- export { unifiedPfObject, unifiedPfSchema } from './chunk-D2ZUTYWA.mjs';
9
- export { unifiedPjObject, unifiedPjSchema } from './chunk-NCTEG6EL.mjs';
10
- import './chunk-OVANLPKX.mjs';
11
- import './chunk-UMP5UF3U.mjs';
12
- import './chunk-7MWUETLP.mjs';
13
- import './chunk-FRMGP3C3.mjs';
14
- import './chunk-53GXILC6.mjs';
15
- import './chunk-FPJKWVVF.mjs';
16
- import './chunk-G5SKXDYM.mjs';
17
- import './chunk-2END6TYT.mjs';
18
- import './chunk-5C4YMHXV.mjs';
19
- import './chunk-IWSDOFBY.mjs';
20
- import './chunk-7ZF45QUN.mjs';
21
- import './chunk-UU3MRKTH.mjs';
22
- import './chunk-GQ5G2YX4.mjs';
23
- import './chunk-VO573WIK.mjs';
24
- import './chunk-L4EWOROT.mjs';
25
- import './chunk-YIUJVGT4.mjs';
26
- import './chunk-N2IX5TRK.mjs';
27
- import './chunk-WTHEEPBE.mjs';
28
- import './chunk-OARPUXXM.mjs';
29
- import './chunk-6PH42V5T.mjs';
30
- import './chunk-3OIG2FI5.mjs';
31
- import './chunk-4XJZIRLT.mjs';
32
- import './chunk-7I2LXGA2.mjs';
33
- export { CIVIL_STATUS_REQUIRING_PARTNER, OCCUPATIONS_REQUIRING_CNPJ, PARTNER_FIELDS, applyPfRefinements, applyPjRefinements } from './chunk-HBTFOSJU.mjs';
1
+ export { BANK_SLUGS, BankEnum, FORMALIZATION_FIELD_META, FORMALIZATION_OPTION_LABELS, NATIONALITY_BRAZIL, UNIFIED_SLUG, getFieldOptions, getFormalizationBaseSchema, getFormalizationSchema, pfBaseSchemaRegistry, pfSchemaRegistry, pjBaseSchemaRegistry, pjSchemaRegistry } from './chunk-AQ43O5UO.mjs';
2
+ import './chunk-T2MFLA6J.mjs';
3
+ import './chunk-GVOOT43S.mjs';
4
+ import './chunk-UYCCHEM5.mjs';
5
+ import './chunk-LOEAPRSO.mjs';
6
+ import './chunk-ZQ2PKLTM.mjs';
7
+ import './chunk-O5XQR5HN.mjs';
8
+ export { unifiedPfObject, unifiedPfSchema } from './chunk-Y7TQ2NQ2.mjs';
9
+ export { unifiedPjObject, unifiedPjSchema } from './chunk-E7JXDCBO.mjs';
10
+ import './chunk-LEUH6IFB.mjs';
11
+ import './chunk-K23FTEKB.mjs';
12
+ import './chunk-WPJOW7IE.mjs';
13
+ import './chunk-X4LHQVVJ.mjs';
14
+ import './chunk-66Y3FO5R.mjs';
15
+ import './chunk-PY7IUNIU.mjs';
16
+ import './chunk-BRBOOPFN.mjs';
17
+ import './chunk-XVITSWCY.mjs';
18
+ import './chunk-35IKZUF4.mjs';
19
+ import './chunk-OFCVHF6Z.mjs';
20
+ import './chunk-BITN6YDR.mjs';
21
+ import './chunk-BSG5DCL7.mjs';
22
+ import './chunk-ISJKYUMR.mjs';
23
+ import './chunk-ACJUTGEC.mjs';
24
+ import './chunk-W6J3SW2H.mjs';
25
+ import './chunk-57DSP6GG.mjs';
26
+ import './chunk-LVFKP46R.mjs';
27
+ import './chunk-RDLOQ6HV.mjs';
28
+ import './chunk-2ZKUSLGU.mjs';
29
+ import './chunk-QUBWDT4D.mjs';
30
+ import './chunk-SKSUT6CG.mjs';
31
+ import './chunk-JBTU6WKN.mjs';
32
+ import './chunk-CSGG5DZE.mjs';
33
+ export { CIVIL_STATUS_REQUIRING_PARTNER, OCCUPATIONS_REQUIRING_CNPJ, PARTNER_FIELDS, applyPfRefinements, applyPjRefinements } from './chunk-5YFVPFSM.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@77sol-lab/form-schemas",
3
- "version": "1.5.0",
3
+ "version": "1.6.0",
4
4
  "description": "Fonte central de schemas Zod da 77 (compilada: JS + .d.ts). Financiamento (PF) é o primeiro domínio.",
5
5
  "license": "MIT",
6
6
  "private": false,