udp-schema 1.1.0 → 2.1.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 (57) hide show
  1. package/dist/helpers.d.ts +33 -0
  2. package/dist/helpers.d.ts.map +1 -0
  3. package/dist/helpers.js +60 -0
  4. package/dist/helpers.js.map +1 -0
  5. package/dist/index.d.ts +16 -4
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +21 -7
  8. package/dist/index.js.map +1 -1
  9. package/dist/onboarding-form.d.ts +485 -0
  10. package/dist/onboarding-form.d.ts.map +1 -0
  11. package/dist/onboarding-form.js +69 -0
  12. package/dist/onboarding-form.js.map +1 -0
  13. package/dist/profile-fields/01-profile.d.ts.map +1 -1
  14. package/dist/profile-fields/01-profile.js +168 -23
  15. package/dist/profile-fields/01-profile.js.map +1 -1
  16. package/dist/profile-fields/02-political.d.ts.map +1 -1
  17. package/dist/profile-fields/02-political.js +119 -28
  18. package/dist/profile-fields/02-political.js.map +1 -1
  19. package/dist/profile-fields/03-electoral.d.ts.map +1 -1
  20. package/dist/profile-fields/03-electoral.js +83 -13
  21. package/dist/profile-fields/03-electoral.js.map +1 -1
  22. package/dist/profile-fields/04-leadership.d.ts.map +1 -1
  23. package/dist/profile-fields/04-leadership.js +131 -14
  24. package/dist/profile-fields/04-leadership.js.map +1 -1
  25. package/dist/profile-fields/05-psychological.d.ts.map +1 -1
  26. package/dist/profile-fields/05-psychological.js +41 -12
  27. package/dist/profile-fields/05-psychological.js.map +1 -1
  28. package/dist/profile-fields/06-education.d.ts.map +1 -1
  29. package/dist/profile-fields/06-education.js +128 -15
  30. package/dist/profile-fields/06-education.js.map +1 -1
  31. package/dist/profile-fields/07-employment.d.ts.map +1 -1
  32. package/dist/profile-fields/07-employment.js +99 -19
  33. package/dist/profile-fields/07-employment.js.map +1 -1
  34. package/dist/profile-fields/08-neurodiversity.d.ts.map +1 -1
  35. package/dist/profile-fields/08-neurodiversity.js +128 -21
  36. package/dist/profile-fields/08-neurodiversity.js.map +1 -1
  37. package/dist/profile-fields/09-health.d.ts.map +1 -1
  38. package/dist/profile-fields/09-health.js +141 -19
  39. package/dist/profile-fields/09-health.js.map +1 -1
  40. package/dist/profile-fields/10-worldview.d.ts.map +1 -1
  41. package/dist/profile-fields/10-worldview.js +112 -13
  42. package/dist/profile-fields/10-worldview.js.map +1 -1
  43. package/dist/profile-fields/11-residence.d.ts.map +1 -1
  44. package/dist/profile-fields/11-residence.js +39 -5
  45. package/dist/profile-fields/11-residence.js.map +1 -1
  46. package/dist/profile-fields/12-household.d.ts.map +1 -1
  47. package/dist/profile-fields/12-household.js +175 -25
  48. package/dist/profile-fields/12-household.js.map +1 -1
  49. package/dist/profile-fields/index.d.ts +8 -8
  50. package/dist/profile-fields/index.d.ts.map +1 -1
  51. package/dist/profile-fields/index.js +8 -8
  52. package/dist/profile-fields/index.js.map +1 -1
  53. package/dist/validation.d.ts +18 -0
  54. package/dist/validation.d.ts.map +1 -0
  55. package/dist/validation.js +186 -0
  56. package/dist/validation.js.map +1 -0
  57. package/package.json +1 -1
@@ -0,0 +1,485 @@
1
+ /**
2
+ * UDP Onboarding Form Schema — single source of truth for the entire form.
3
+ *
4
+ * Mirrors dating-schema's onboardingFormSchema:
5
+ * - All fields from all 12 steps combined into one schema
6
+ * - All fields optional (form starts empty, fills incrementally)
7
+ * - Provides OnboardingFormData type (inferred from Zod)
8
+ *
9
+ * @module udp-schema/onboarding-form
10
+ */
11
+ import { z } from 'zod';
12
+ /**
13
+ * Unified form schema — all fields from all 12 steps, all optional.
14
+ *
15
+ * Used by:
16
+ * - Frontend: useForm<OnboardingFormData>({ resolver: zodResolver(udpOnboardingFormSchema) })
17
+ * - Backend: Final validation at profile submission
18
+ *
19
+ * All fields are optional because the form fills incrementally (1 question at a time).
20
+ */
21
+ export declare const udpOnboardingFormSchema: z.ZodObject<{
22
+ sameAsFamily: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
23
+ guardianPhone: z.ZodOptional<z.ZodOptional<z.ZodObject<{
24
+ relation: z.ZodOptional<z.ZodString>;
25
+ phone: z.ZodOptional<z.ZodString>;
26
+ }, z.core.$strip>>>;
27
+ maritalStatus: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
28
+ prefer_not_to_say: "prefer_not_to_say";
29
+ single: "single";
30
+ married: "married";
31
+ divorced: "divorced";
32
+ widowed: "widowed";
33
+ separated: "separated";
34
+ }>>>;
35
+ familyMembers: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
36
+ numberOfDependents: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
37
+ housingType: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
38
+ other: "other";
39
+ own_house: "own_house";
40
+ rented: "rented";
41
+ government_quarters: "government_quarters";
42
+ shared: "shared";
43
+ homeless: "homeless";
44
+ }>>>;
45
+ householdIncome: z.ZodOptional<z.ZodOptional<z.ZodString>>;
46
+ bplCard: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
47
+ yes: "yes";
48
+ no: "no";
49
+ dont_know: "dont_know";
50
+ applied: "applied";
51
+ }>>>;
52
+ digitalAccess: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
53
+ migrationStatus: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
54
+ native: "native";
55
+ within_district: "within_district";
56
+ within_state: "within_state";
57
+ inter_state: "inter_state";
58
+ international: "international";
59
+ }>>>;
60
+ landOwnership: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
61
+ other: "other";
62
+ own_agricultural: "own_agricultural";
63
+ own_residential: "own_residential";
64
+ government_allotted: "government_allotted";
65
+ no_land: "no_land";
66
+ leased: "leased";
67
+ }>>>;
68
+ primaryIncomeSource: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
69
+ other: "other";
70
+ daily_wage: "daily_wage";
71
+ agriculture: "agriculture";
72
+ government_job: "government_job";
73
+ private_job: "private_job";
74
+ business: "business";
75
+ pension: "pension";
76
+ remittance: "remittance";
77
+ no_fixed_income: "no_fixed_income";
78
+ }>>>;
79
+ currentAddress: z.ZodOptional<z.ZodOptional<z.ZodObject<{
80
+ state: z.ZodOptional<z.ZodString>;
81
+ district: z.ZodOptional<z.ZodString>;
82
+ village: z.ZodOptional<z.ZodString>;
83
+ }, z.core.$strip>>>;
84
+ permanentAddress: z.ZodOptional<z.ZodOptional<z.ZodObject<{
85
+ state: z.ZodOptional<z.ZodString>;
86
+ district: z.ZodOptional<z.ZodString>;
87
+ village: z.ZodOptional<z.ZodString>;
88
+ sameAsCurrent: z.ZodOptional<z.ZodBoolean>;
89
+ }, z.core.$strip>>>;
90
+ homeNativePlace: z.ZodOptional<z.ZodOptional<z.ZodObject<{
91
+ state: z.ZodOptional<z.ZodString>;
92
+ district: z.ZodOptional<z.ZodString>;
93
+ village: z.ZodOptional<z.ZodString>;
94
+ }, z.core.$strip>>>;
95
+ ancestralPlace: z.ZodOptional<z.ZodOptional<z.ZodObject<{
96
+ state: z.ZodOptional<z.ZodString>;
97
+ district: z.ZodOptional<z.ZodString>;
98
+ village: z.ZodOptional<z.ZodString>;
99
+ }, z.core.$strip>>>;
100
+ viewOnAnimalCruelty: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
101
+ prefer_not_to_say: "prefer_not_to_say";
102
+ strongly_against: "strongly_against";
103
+ against_but_food: "against_but_food";
104
+ neutral: "neutral";
105
+ acceptable_in_tradition: "acceptable_in_tradition";
106
+ }>>>;
107
+ viewOnLgbtqStatements: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
108
+ viewOnLgbtqOpinion: z.ZodOptional<z.ZodOptional<z.ZodString>>;
109
+ viewOnTransgenderInclusion: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
110
+ viewOnTransgenderOpinion: z.ZodOptional<z.ZodOptional<z.ZodString>>;
111
+ facingCasteDiscrimination: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
112
+ PREFER_NOT_SAY: "PREFER_NOT_SAY";
113
+ NO: "NO";
114
+ YES_OFTEN: "YES_OFTEN";
115
+ YES_SOMETIMES: "YES_SOMETIMES";
116
+ }>>>;
117
+ casteDiscriminationPlaces: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
118
+ viewOnGenderEquality: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
119
+ prefer_not_to_say: "prefer_not_to_say";
120
+ strong_advocate: "strong_advocate";
121
+ supportive: "supportive";
122
+ traditional_values: "traditional_values";
123
+ no_opinion: "no_opinion";
124
+ }>>>;
125
+ disabilityStatus: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
126
+ generalHealth: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
127
+ prefer_not_to_say: "prefer_not_to_say";
128
+ excellent: "excellent";
129
+ good: "good";
130
+ fair: "fair";
131
+ poor: "poor";
132
+ }>>>;
133
+ healthInsurance: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
134
+ no: "no";
135
+ yes_government: "yes_government";
136
+ yes_private: "yes_private";
137
+ yes_employer: "yes_employer";
138
+ ayushman_bharat: "ayushman_bharat";
139
+ }>>>;
140
+ diet: z.ZodOptional<z.ZodOptional<z.ZodString>>;
141
+ physicalActivity: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
142
+ rarely: "rarely";
143
+ never: "never";
144
+ daily: "daily";
145
+ few_times_week: "few_times_week";
146
+ weekly: "weekly";
147
+ }>>>;
148
+ sleepQuality: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
149
+ average: "average";
150
+ excellent: "excellent";
151
+ good: "good";
152
+ poor: "poor";
153
+ irregular: "irregular";
154
+ }>>>;
155
+ substanceUse: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
156
+ stressLevel: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
157
+ moderate: "moderate";
158
+ high: "high";
159
+ very_high: "very_high";
160
+ low: "low";
161
+ very_low: "very_low";
162
+ }>>>;
163
+ neurodiverseIdentity: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
164
+ prefer_not_to_say: "prefer_not_to_say";
165
+ yes: "yes";
166
+ no: "no";
167
+ exploring: "exploring";
168
+ }>>>;
169
+ conditions: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
170
+ sensoryPreferences: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
171
+ learningStyle: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
172
+ visual: "visual";
173
+ auditory: "auditory";
174
+ kinesthetic: "kinesthetic";
175
+ reading_writing: "reading_writing";
176
+ mixed: "mixed";
177
+ }>>>;
178
+ communicationPreference: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
179
+ prefer_not_to_say: "prefer_not_to_say";
180
+ face_to_face: "face_to_face";
181
+ written: "written";
182
+ visual_aids: "visual_aids";
183
+ phone_calls: "phone_calls";
184
+ small_groups_only: "small_groups_only";
185
+ }>>>;
186
+ supportNeeds: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
187
+ employmentStatus: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
188
+ other: "other";
189
+ employed: "employed";
190
+ self_employed: "self_employed";
191
+ unemployed: "unemployed";
192
+ student: "student";
193
+ homemaker: "homemaker";
194
+ retired: "retired";
195
+ daily_wage: "daily_wage";
196
+ }>>>;
197
+ occupation: z.ZodOptional<z.ZodOptional<z.ZodString>>;
198
+ workShift: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
199
+ day_shift: "day_shift";
200
+ night_shift: "night_shift";
201
+ rotating: "rotating";
202
+ flexible: "flexible";
203
+ work_from_home: "work_from_home";
204
+ not_applicable: "not_applicable";
205
+ }>>>;
206
+ comfortableWithShift: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
207
+ yes: "yes";
208
+ no: "no";
209
+ somewhat: "somewhat";
210
+ }>>>;
211
+ desiredShift: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
212
+ day_shift: "day_shift";
213
+ night_shift: "night_shift";
214
+ rotating: "rotating";
215
+ flexible: "flexible";
216
+ work_from_home: "work_from_home";
217
+ not_applicable: "not_applicable";
218
+ }>>>;
219
+ incomeRange: z.ZodOptional<z.ZodOptional<z.ZodString>>;
220
+ dreamOccupation: z.ZodOptional<z.ZodOptional<z.ZodString>>;
221
+ highestQualification: z.ZodOptional<z.ZodEnum<{
222
+ CLASS_10: "CLASS_10";
223
+ CLASS_12: "CLASS_12";
224
+ DIPLOMA: "DIPLOMA";
225
+ GRADUATION: "GRADUATION";
226
+ POST_GRAD: "POST_GRAD";
227
+ PHD: "PHD";
228
+ POST_DOCTORATE: "POST_DOCTORATE";
229
+ OTHER: "OTHER";
230
+ }>>;
231
+ education10th: z.ZodOptional<z.ZodOptional<z.ZodObject<{
232
+ board: z.ZodOptional<z.ZodString>;
233
+ schoolName: z.ZodOptional<z.ZodString>;
234
+ yearOfPassing: z.ZodOptional<z.ZodString>;
235
+ subjects: z.ZodOptional<z.ZodString>;
236
+ marksObtained: z.ZodOptional<z.ZodString>;
237
+ }, z.core.$strip>>>;
238
+ education12th: z.ZodOptional<z.ZodOptional<z.ZodObject<{
239
+ institutionName: z.ZodOptional<z.ZodString>;
240
+ boardOrUniversity: z.ZodOptional<z.ZodString>;
241
+ yearOfPassing: z.ZodOptional<z.ZodString>;
242
+ courseOrStream: z.ZodOptional<z.ZodString>;
243
+ marksOrGrade: z.ZodOptional<z.ZodString>;
244
+ }, z.core.$strip>>>;
245
+ diplomas: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
246
+ degreeName: z.ZodOptional<z.ZodString>;
247
+ institutionName: z.ZodOptional<z.ZodString>;
248
+ university: z.ZodOptional<z.ZodString>;
249
+ yearOfPassing: z.ZodOptional<z.ZodString>;
250
+ courseOrStream: z.ZodOptional<z.ZodString>;
251
+ marksOrGrade: z.ZodOptional<z.ZodString>;
252
+ isCurrentlyStudying: z.ZodOptional<z.ZodBoolean>;
253
+ }, z.core.$strip>>>>;
254
+ graduations: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
255
+ degreeName: z.ZodOptional<z.ZodString>;
256
+ institutionName: z.ZodOptional<z.ZodString>;
257
+ university: z.ZodOptional<z.ZodString>;
258
+ yearOfPassing: z.ZodOptional<z.ZodString>;
259
+ courseOrStream: z.ZodOptional<z.ZodString>;
260
+ marksOrGrade: z.ZodOptional<z.ZodString>;
261
+ isCurrentlyStudying: z.ZodOptional<z.ZodBoolean>;
262
+ }, z.core.$strip>>>>;
263
+ postGraduations: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
264
+ degreeName: z.ZodOptional<z.ZodString>;
265
+ institutionName: z.ZodOptional<z.ZodString>;
266
+ university: z.ZodOptional<z.ZodString>;
267
+ yearOfPassing: z.ZodOptional<z.ZodString>;
268
+ courseOrStream: z.ZodOptional<z.ZodString>;
269
+ marksOrGrade: z.ZodOptional<z.ZodString>;
270
+ isCurrentlyStudying: z.ZodOptional<z.ZodBoolean>;
271
+ }, z.core.$strip>>>>;
272
+ doctorates: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
273
+ degreeName: z.ZodOptional<z.ZodString>;
274
+ institutionName: z.ZodOptional<z.ZodString>;
275
+ university: z.ZodOptional<z.ZodString>;
276
+ yearOfPassing: z.ZodOptional<z.ZodString>;
277
+ courseOrStream: z.ZodOptional<z.ZodString>;
278
+ marksOrGrade: z.ZodOptional<z.ZodString>;
279
+ isCurrentlyStudying: z.ZodOptional<z.ZodBoolean>;
280
+ }, z.core.$strip>>>>;
281
+ postDoctorates: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
282
+ degreeName: z.ZodOptional<z.ZodString>;
283
+ institutionName: z.ZodOptional<z.ZodString>;
284
+ university: z.ZodOptional<z.ZodString>;
285
+ yearOfPassing: z.ZodOptional<z.ZodString>;
286
+ courseOrStream: z.ZodOptional<z.ZodString>;
287
+ marksOrGrade: z.ZodOptional<z.ZodString>;
288
+ isCurrentlyStudying: z.ZodOptional<z.ZodBoolean>;
289
+ }, z.core.$strip>>>>;
290
+ otherCertificates: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
291
+ certificateName: z.ZodOptional<z.ZodString>;
292
+ institutionName: z.ZodOptional<z.ZodString>;
293
+ yearOfCompletion: z.ZodOptional<z.ZodString>;
294
+ fieldOrSubject: z.ZodOptional<z.ZodString>;
295
+ }, z.core.$strip>>>>;
296
+ educationNotes: z.ZodOptional<z.ZodOptional<z.ZodString>>;
297
+ mbtiType: z.ZodOptional<z.ZodOptional<z.ZodString>>;
298
+ oceanScores: z.ZodOptional<z.ZodOptional<z.ZodObject<{
299
+ openness: z.ZodOptional<z.ZodNumber>;
300
+ conscientiousness: z.ZodOptional<z.ZodNumber>;
301
+ extraversion: z.ZodOptional<z.ZodNumber>;
302
+ agreeableness: z.ZodOptional<z.ZodNumber>;
303
+ neuroticism: z.ZodOptional<z.ZodNumber>;
304
+ }, z.core.$strip>>>;
305
+ participateInRevolution: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
306
+ no: "no";
307
+ maybe: "maybe";
308
+ yes_definitely: "yes_definitely";
309
+ not_sure: "not_sure";
310
+ }>>>;
311
+ desiredPoliticalPosition: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
312
+ other: "other";
313
+ none: "none";
314
+ sarpanch: "sarpanch";
315
+ block_pramukh: "block_pramukh";
316
+ zila_panchayat: "zila_panchayat";
317
+ mla: "mla";
318
+ mp: "mp";
319
+ municipal_councillor: "municipal_councillor";
320
+ mayor: "mayor";
321
+ }>>>;
322
+ leadershipSkillset: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
323
+ politicalExposure: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
324
+ none: "none";
325
+ minimal: "minimal";
326
+ moderate: "moderate";
327
+ high: "high";
328
+ very_high: "very_high";
329
+ }>>>;
330
+ comfortWithVisibility: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
331
+ very_comfortable: "very_comfortable";
332
+ somewhat: "somewhat";
333
+ prefer_behind_scenes: "prefer_behind_scenes";
334
+ not_comfortable: "not_comfortable";
335
+ }>>>;
336
+ socialInfluenceLevel: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
337
+ not_sure: "not_sure";
338
+ somewhat: "somewhat";
339
+ very_influential: "very_influential";
340
+ average: "average";
341
+ low: "low";
342
+ }>>>;
343
+ pastExperience: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
344
+ other: "other";
345
+ yes_party_work: "yes_party_work";
346
+ yes_social_work: "yes_social_work";
347
+ yes_student_politics: "yes_student_politics";
348
+ no_experience: "no_experience";
349
+ }>>>;
350
+ changesYouWantToBring: z.ZodOptional<z.ZodOptional<z.ZodString>>;
351
+ epicNumber: z.ZodOptional<z.ZodOptional<z.ZodString>>;
352
+ willVoteThisTime: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
353
+ prefer_not_to_say: "prefer_not_to_say";
354
+ yes: "yes";
355
+ no: "no";
356
+ maybe: "maybe";
357
+ }>>>;
358
+ didVoteLastTime: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
359
+ prefer_not_to_say: "prefer_not_to_say";
360
+ yes: "yes";
361
+ no: "no";
362
+ }>>>;
363
+ votingFrequency: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
364
+ every_election: "every_election";
365
+ most_elections: "most_elections";
366
+ sometimes: "sometimes";
367
+ rarely: "rarely";
368
+ never: "never";
369
+ first_time_voter: "first_time_voter";
370
+ }>>>;
371
+ primaryVotingIssues: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
372
+ politicalSpectrum: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
373
+ prefer_not_to_say: "prefer_not_to_say";
374
+ "1_tradition_faith": "1_tradition_faith";
375
+ "2_faith_curious": "2_faith_curious";
376
+ "3_multiplicity_open": "3_multiplicity_open";
377
+ "4_pragmatic_flexible": "4_pragmatic_flexible";
378
+ "5_evidence_reasoning": "5_evidence_reasoning";
379
+ "6_critical_reflective": "6_critical_reflective";
380
+ "7_skeptic_optimize": "7_skeptic_optimize";
381
+ }>>>;
382
+ selfPartyAssociation: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>>;
383
+ familyPartyAssociation: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>>;
384
+ publicOfficeAndElections: z.ZodOptional<z.ZodOptional<z.ZodObject<{
385
+ hasHeldOffice: z.ZodOptional<z.ZodEnum<{
386
+ prefer_not_to_say: "prefer_not_to_say";
387
+ yes: "yes";
388
+ no: "no";
389
+ }>>;
390
+ officeDetails: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
391
+ electionContested: z.ZodOptional<z.ZodEnum<{
392
+ yes: "yes";
393
+ no: "no";
394
+ }>>;
395
+ electionDetails: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
396
+ }, z.core.$strip>>>;
397
+ networkAndCivicEngagement: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
398
+ firstName: z.ZodOptional<z.ZodString>;
399
+ middleName: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>>;
400
+ lastName: z.ZodOptional<z.ZodString>;
401
+ gender: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
402
+ man: "man";
403
+ woman: "woman";
404
+ non_binary: "non_binary";
405
+ transgender_man: "transgender_man";
406
+ transgender_woman: "transgender_woman";
407
+ genderqueer: "genderqueer";
408
+ genderfluid: "genderfluid";
409
+ agender: "agender";
410
+ two_spirit: "two_spirit";
411
+ other: "other";
412
+ prefer_not_to_say: "prefer_not_to_say";
413
+ }>>>;
414
+ dateOfBirth: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodCoercedDate<unknown>>>>;
415
+ whatsappNumber: z.ZodOptional<z.ZodOptional<z.ZodString>>;
416
+ primaryLanguage: z.ZodOptional<z.ZodOptional<z.ZodString>>;
417
+ secondaryLanguages: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
418
+ familyReligion: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
419
+ other: "other";
420
+ prefer_not_to_say: "prefer_not_to_say";
421
+ hindu: "hindu";
422
+ muslim_sunni: "muslim_sunni";
423
+ muslim_shia: "muslim_shia";
424
+ muslim_sufi: "muslim_sufi";
425
+ muslim_other: "muslim_other";
426
+ christian_catholic: "christian_catholic";
427
+ christian_protestant: "christian_protestant";
428
+ christian_other: "christian_other";
429
+ sikh: "sikh";
430
+ jain_digambar: "jain_digambar";
431
+ jain_shwetambar: "jain_shwetambar";
432
+ buddhist: "buddhist";
433
+ parsi_zoroastrian: "parsi_zoroastrian";
434
+ jewish: "jewish";
435
+ bahai: "bahai";
436
+ spiritual: "spiritual";
437
+ atheist: "atheist";
438
+ agnostic: "agnostic";
439
+ no_religion: "no_religion";
440
+ inter_religion: "inter_religion";
441
+ }>>>;
442
+ personalReligion: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
443
+ other: "other";
444
+ prefer_not_to_say: "prefer_not_to_say";
445
+ hindu: "hindu";
446
+ muslim_sunni: "muslim_sunni";
447
+ muslim_shia: "muslim_shia";
448
+ muslim_sufi: "muslim_sufi";
449
+ muslim_other: "muslim_other";
450
+ christian_catholic: "christian_catholic";
451
+ christian_protestant: "christian_protestant";
452
+ christian_other: "christian_other";
453
+ sikh: "sikh";
454
+ jain_digambar: "jain_digambar";
455
+ jain_shwetambar: "jain_shwetambar";
456
+ buddhist: "buddhist";
457
+ parsi_zoroastrian: "parsi_zoroastrian";
458
+ jewish: "jewish";
459
+ bahai: "bahai";
460
+ spiritual: "spiritual";
461
+ atheist: "atheist";
462
+ agnostic: "agnostic";
463
+ no_religion: "no_religion";
464
+ inter_religion: "inter_religion";
465
+ }>>>;
466
+ reservationStatus: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
467
+ SC: "SC";
468
+ ST: "ST";
469
+ OBC_NC: "OBC_NC";
470
+ OBC_C: "OBC_C";
471
+ EWS: "EWS";
472
+ GENERAL: "GENERAL";
473
+ DONT_KNOW: "DONT_KNOW";
474
+ PREFER_NOT_SAY: "PREFER_NOT_SAY";
475
+ }>>>;
476
+ minorityStatus: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
477
+ NO: "NO";
478
+ RELIGIOUS: "RELIGIOUS";
479
+ LINGUISTIC: "LINGUISTIC";
480
+ NOT_SURE: "NOT_SURE";
481
+ }>>>;
482
+ }, z.core.$strip>;
483
+ /** Inferred form data type — used for useForm<OnboardingFormData>() */
484
+ export type OnboardingFormData = z.infer<typeof udpOnboardingFormSchema>;
485
+ //# sourceMappingURL=onboarding-form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding-form.d.ts","sourceRoot":"","sources":["../src/onboarding-form.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoCxB,CAAC;AAEb,uEAAuE;AACvE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * UDP Onboarding Form Schema — single source of truth for the entire form.
3
+ *
4
+ * Mirrors dating-schema's onboardingFormSchema:
5
+ * - All fields from all 12 steps combined into one schema
6
+ * - All fields optional (form starts empty, fills incrementally)
7
+ * - Provides OnboardingFormData type (inferred from Zod)
8
+ *
9
+ * @module udp-schema/onboarding-form
10
+ */
11
+ import { z } from 'zod';
12
+ import { step01ProfileSchema } from './step-01.schema.js';
13
+ import { step02PoliticalSchema } from './step-02.schema.js';
14
+ import { step03ElectoralSchema } from './step-03.schema.js';
15
+ import { step04LeadershipSchema } from './step-04.schema.js';
16
+ import { step05PsychologicalSchema } from './step-05.schema.js';
17
+ import { step06EducationSchema } from './step-06.schema.js';
18
+ import { step07EmploymentSchema } from './step-07.schema.js';
19
+ import { step08NeurodiversitySchema } from './step-08.schema.js';
20
+ import { step09HealthSchema } from './step-09.schema.js';
21
+ import { step10WorldViewSchema } from './step-10.schema.js';
22
+ import { step11ResidenceSchema } from './step-11.schema.js';
23
+ import { step12HouseholdSchema } from './step-12.schema.js';
24
+ /**
25
+ * Unified form schema — all fields from all 12 steps, all optional.
26
+ *
27
+ * Used by:
28
+ * - Frontend: useForm<OnboardingFormData>({ resolver: zodResolver(udpOnboardingFormSchema) })
29
+ * - Backend: Final validation at profile submission
30
+ *
31
+ * All fields are optional because the form fills incrementally (1 question at a time).
32
+ */
33
+ export const udpOnboardingFormSchema = z
34
+ .object({
35
+ // Step 1 — Profile
36
+ ...step01ProfileSchema.shape,
37
+ // Step 2 — Political
38
+ ...step02PoliticalSchema.shape,
39
+ // Step 3 — Electoral
40
+ ...step03ElectoralSchema.shape,
41
+ // Step 4 — Leadership
42
+ ...step04LeadershipSchema.shape,
43
+ // Step 5 — Psychological
44
+ ...step05PsychologicalSchema.shape,
45
+ // Step 6 — Education
46
+ ...step06EducationSchema.shape,
47
+ // Step 7 — Employment
48
+ ...step07EmploymentSchema.shape,
49
+ // Step 8 — Neurodiversity
50
+ ...step08NeurodiversitySchema.shape,
51
+ // Step 9 — Health
52
+ ...step09HealthSchema.shape,
53
+ // Step 10 — World View
54
+ ...step10WorldViewSchema.shape,
55
+ // Step 11 — Residence
56
+ ...step11ResidenceSchema.shape,
57
+ // Step 12 — Household
58
+ ...step12HouseholdSchema.shape,
59
+ // UI-only fields (not in step schemas but used during onboarding)
60
+ sameAsFamily: z.boolean().optional(),
61
+ guardianPhone: z
62
+ .object({
63
+ relation: z.string().optional(),
64
+ phone: z.string().optional(),
65
+ })
66
+ .optional(),
67
+ })
68
+ .partial();
69
+ //# sourceMappingURL=onboarding-form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding-form.js","sourceRoot":"","sources":["../src/onboarding-form.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,MAAM,CAAC;IACN,mBAAmB;IACnB,GAAG,mBAAmB,CAAC,KAAK;IAC5B,qBAAqB;IACrB,GAAG,qBAAqB,CAAC,KAAK;IAC9B,qBAAqB;IACrB,GAAG,qBAAqB,CAAC,KAAK;IAC9B,sBAAsB;IACtB,GAAG,sBAAsB,CAAC,KAAK;IAC/B,yBAAyB;IACzB,GAAG,yBAAyB,CAAC,KAAK;IAClC,qBAAqB;IACrB,GAAG,qBAAqB,CAAC,KAAK;IAC9B,sBAAsB;IACtB,GAAG,sBAAsB,CAAC,KAAK;IAC/B,0BAA0B;IAC1B,GAAG,0BAA0B,CAAC,KAAK;IACnC,kBAAkB;IAClB,GAAG,kBAAkB,CAAC,KAAK;IAC3B,uBAAuB;IACvB,GAAG,qBAAqB,CAAC,KAAK;IAC9B,sBAAsB;IACtB,GAAG,qBAAqB,CAAC,KAAK;IAC9B,sBAAsB;IACtB,GAAG,qBAAqB,CAAC,KAAK;IAE9B,kEAAkE;IAClE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACpC,aAAa,EAAE,CAAC;SACb,MAAM,CAAC;QACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC7B,CAAC;SACD,QAAQ,EAAE;CACd,CAAC;KACD,OAAO,EAAE,CAAC","sourcesContent":["/**\n * UDP Onboarding Form Schema — single source of truth for the entire form.\n *\n * Mirrors dating-schema's onboardingFormSchema:\n * - All fields from all 12 steps combined into one schema\n * - All fields optional (form starts empty, fills incrementally)\n * - Provides OnboardingFormData type (inferred from Zod)\n *\n * @module udp-schema/onboarding-form\n */\n\nimport { z } from 'zod';\nimport { step01ProfileSchema } from './step-01.schema.js';\nimport { step02PoliticalSchema } from './step-02.schema.js';\nimport { step03ElectoralSchema } from './step-03.schema.js';\nimport { step04LeadershipSchema } from './step-04.schema.js';\nimport { step05PsychologicalSchema } from './step-05.schema.js';\nimport { step06EducationSchema } from './step-06.schema.js';\nimport { step07EmploymentSchema } from './step-07.schema.js';\nimport { step08NeurodiversitySchema } from './step-08.schema.js';\nimport { step09HealthSchema } from './step-09.schema.js';\nimport { step10WorldViewSchema } from './step-10.schema.js';\nimport { step11ResidenceSchema } from './step-11.schema.js';\nimport { step12HouseholdSchema } from './step-12.schema.js';\n\n/**\n * Unified form schema — all fields from all 12 steps, all optional.\n *\n * Used by:\n * - Frontend: useForm<OnboardingFormData>({ resolver: zodResolver(udpOnboardingFormSchema) })\n * - Backend: Final validation at profile submission\n *\n * All fields are optional because the form fills incrementally (1 question at a time).\n */\nexport const udpOnboardingFormSchema = z\n .object({\n // Step 1 — Profile\n ...step01ProfileSchema.shape,\n // Step 2 — Political\n ...step02PoliticalSchema.shape,\n // Step 3 — Electoral\n ...step03ElectoralSchema.shape,\n // Step 4 — Leadership\n ...step04LeadershipSchema.shape,\n // Step 5 — Psychological\n ...step05PsychologicalSchema.shape,\n // Step 6 — Education\n ...step06EducationSchema.shape,\n // Step 7 — Employment\n ...step07EmploymentSchema.shape,\n // Step 8 — Neurodiversity\n ...step08NeurodiversitySchema.shape,\n // Step 9 — Health\n ...step09HealthSchema.shape,\n // Step 10 — World View\n ...step10WorldViewSchema.shape,\n // Step 11 — Residence\n ...step11ResidenceSchema.shape,\n // Step 12 — Household\n ...step12HouseholdSchema.shape,\n\n // UI-only fields (not in step schemas but used during onboarding)\n sameAsFamily: z.boolean().optional(),\n guardianPhone: z\n .object({\n relation: z.string().optional(),\n phone: z.string().optional(),\n })\n .optional(),\n })\n .partial();\n\n/** Inferred form data type — used for useForm<OnboardingFormData>() */\nexport type OnboardingFormData = z.infer<typeof udpOnboardingFormSchema>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"01-profile.d.ts","sourceRoot":"","sources":["../../src/profile-fields/01-profile.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYhB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBlB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BlB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;EASrB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;;;EAKlB,CAAC;AAIX,eAAO,MAAM,OAAO,EAAE,UAmBrB,CAAC"}
1
+ {"version":3,"file":"01-profile.d.ts","sourceRoot":"","sources":["../../src/profile-fields/01-profile.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BhB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmDlB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BlB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;EASrB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;;;EAKlB,CAAC;AAIX,eAAO,MAAM,OAAO,EAAE,UAwHrB,CAAC"}