dating-schema 0.49.1 → 0.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/common.d.ts CHANGED
@@ -13,11 +13,34 @@ import { z } from 'zod';
13
13
  export declare const emptyStringToUndefined: (value: unknown) => unknown;
14
14
  /** Optional trimmed string. Empty strings are coerced to `undefined`. */
15
15
  export declare const optionalTrimmedString: (maxLength?: number) => z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
16
- /** Biological / self-identified gender for a dating profile. */
16
+ /**
17
+ * Self-identified gender — imported from udp-schema's canonical
18
+ * 17-value `GENDER_VALUES`. Shared across UDP step-01, dating, and
19
+ * any future service profile so values never drift.
20
+ *
21
+ * BREAKING CHANGE from previous 4-value list (`male` / `female` /
22
+ * `non_binary` / `prefer_not_to_say`). Old `male` / `female` values
23
+ * are gone — use `man` / `woman` instead. Any frontend code that
24
+ * hardcoded the old strings will fail at the input dropdown level
25
+ * (the new enum doesn't accept them).
26
+ */
17
27
  export declare const genderSchema: z.ZodEnum<{
18
- male: "male";
19
- female: "female";
28
+ man: "man";
29
+ woman: "woman";
20
30
  non_binary: "non_binary";
31
+ trans_man: "trans_man";
32
+ trans_woman: "trans_woman";
33
+ genderfluid: "genderfluid";
34
+ genderqueer: "genderqueer";
35
+ agender: "agender";
36
+ bigender: "bigender";
37
+ pangender: "pangender";
38
+ androgynous: "androgynous";
39
+ intersex: "intersex";
40
+ gender_nonconforming: "gender_nonconforming";
41
+ two_spirit: "two_spirit";
42
+ hijra: "hijra";
43
+ other: "other";
21
44
  prefer_not_to_say: "prefer_not_to_say";
22
45
  }>;
23
46
  export type Gender = z.infer<typeof genderSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,OAAO,OAAO,KAAG,OAGvD,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,qBAAqB,GAAI,kBAAe,4EAC8B,CAAC;AAIpF,gEAAgE;AAChE,eAAO,MAAM,YAAY;;;;;EAAgE,CAAC;AAC1F,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,6CAA6C;AAC7C,eAAO,MAAM,kBAAkB;;;;EAAyC,CAAC;AACzE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,qEAAqE;AACrE,eAAO,MAAM,iBAAiB;;;EAA2B,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,qDAAqD;AACrD,eAAO,MAAM,mBAAmB;;;;;EAAgE,CAAC;AACjG,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,oDAAoD;AACpD,eAAO,MAAM,gBAAgB;;;;EAAgE,CAAC;AAC9F,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,4BAA4B;AAC5B,eAAO,MAAM,iBAAiB;;;;EAAmC,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,mCAAmC;AACnC,eAAO,MAAM,iBAAiB;;;;EAA6C,CAAC;AAC5E,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAI5D,mCAAmC;AACnC,eAAO,MAAM,cAAc;;;iBAKsD,CAAC;AAClF,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,qCAAqC;AACrC,eAAO,MAAM,WAAW;;;;;;iBAMtB,CAAC;AACH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEhD,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB;;;iBAG3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,OAAO,OAAO,KAAG,OAGvD,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,qBAAqB,GAAI,kBAAe,4EAC8B,CAAC;AAIpF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;EAAwB,CAAC;AAClD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,6CAA6C;AAC7C,eAAO,MAAM,kBAAkB;;;;EAAyC,CAAC;AACzE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,qEAAqE;AACrE,eAAO,MAAM,iBAAiB;;;EAA2B,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,qDAAqD;AACrD,eAAO,MAAM,mBAAmB;;;;;EAAgE,CAAC;AACjG,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,oDAAoD;AACpD,eAAO,MAAM,gBAAgB;;;;EAAgE,CAAC;AAC9F,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,4BAA4B;AAC5B,eAAO,MAAM,iBAAiB;;;;EAAmC,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,mCAAmC;AACnC,eAAO,MAAM,iBAAiB;;;;EAA6C,CAAC;AAC5E,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAI5D,mCAAmC;AACnC,eAAO,MAAM,cAAc;;;iBAKsD,CAAC;AAClF,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,qCAAqC;AACrC,eAAO,MAAM,WAAW;;;;;;iBAMtB,CAAC;AACH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEhD,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB;;;iBAG3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
package/dist/common.js CHANGED
@@ -5,6 +5,7 @@
5
5
  *
6
6
  * @module dating-schema/common
7
7
  */
8
+ import { GENDER_VALUES } from 'udp-schema';
8
9
  import { z } from 'zod';
9
10
  // ─── String helpers ──────────────────────────────────────────────────────────
10
11
  /**
@@ -19,8 +20,18 @@ export const emptyStringToUndefined = (value) => {
19
20
  /** Optional trimmed string. Empty strings are coerced to `undefined`. */
20
21
  export const optionalTrimmedString = (maxLength = 100) => z.preprocess(emptyStringToUndefined, z.string().trim().max(maxLength).optional());
21
22
  // ─── Core enums ──────────────────────────────────────────────────────────────
22
- /** Biological / self-identified gender for a dating profile. */
23
- export const genderSchema = z.enum(['male', 'female', 'non_binary', 'prefer_not_to_say']);
23
+ /**
24
+ * Self-identified gender imported from udp-schema's canonical
25
+ * 17-value `GENDER_VALUES`. Shared across UDP step-01, dating, and
26
+ * any future service profile so values never drift.
27
+ *
28
+ * BREAKING CHANGE from previous 4-value list (`male` / `female` /
29
+ * `non_binary` / `prefer_not_to_say`). Old `male` / `female` values
30
+ * are gone — use `man` / `woman` instead. Any frontend code that
31
+ * hardcoded the old strings will fail at the input dropdown level
32
+ * (the new enum doesn't accept them).
33
+ */
34
+ export const genderSchema = z.enum(GENDER_VALUES);
24
35
  /** Who the user is interested in meeting. */
25
36
  export const interestedInSchema = z.enum(['male', 'female', 'everyone']);
26
37
  /** Swipe / interaction action a user can take on another profile. */
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * dating-schema — Shared helpers and core enums\n *\n * These are the stable building blocks reused across all dating schemas.\n *\n * @module dating-schema/common\n */\n\nimport { z } from 'zod';\n\n// ─── String helpers ──────────────────────────────────────────────────────────\n\n/**\n * Converts empty / whitespace-only strings to `undefined`\n * so Zod `.optional()` treats them as \"not provided\".\n */\nexport const emptyStringToUndefined = (value: unknown): unknown => {\n if (typeof value === 'string' && value.trim() === '') return undefined;\n return value;\n};\n\n/** Optional trimmed string. Empty strings are coerced to `undefined`. */\nexport const optionalTrimmedString = (maxLength = 100) =>\n z.preprocess(emptyStringToUndefined, z.string().trim().max(maxLength).optional());\n\n// ─── Core enums ──────────────────────────────────────────────────────────────\n\n/** Biological / self-identified gender for a dating profile. */\nexport const genderSchema = z.enum(['male', 'female', 'non_binary', 'prefer_not_to_say']);\nexport type Gender = z.infer<typeof genderSchema>;\n\n/** Who the user is interested in meeting. */\nexport const interestedInSchema = z.enum(['male', 'female', 'everyone']);\nexport type InterestedIn = z.infer<typeof interestedInSchema>;\n\n/** Swipe / interaction action a user can take on another profile. */\nexport const swipeActionSchema = z.enum(['like', 'pass']);\nexport type SwipeAction = z.infer<typeof swipeActionSchema>;\n\n/** Current marital / relationship history status. */\nexport const maritalStatusSchema = z.enum(['never_married', 'divorced', 'widowed', 'separated']);\nexport type MaritalStatus = z.infer<typeof maritalStatusSchema>;\n\n/** What the user is looking for on the platform. */\nexport const lookingForSchema = z.enum(['serious_relationship', 'friendship', 'open_to_all']);\nexport type LookingFor = z.infer<typeof lookingForSchema>;\n\n/** Message content type. */\nexport const messageTypeSchema = z.enum(['text', 'image', 'gif']);\nexport type MessageType = z.infer<typeof messageTypeSchema>;\n\n/** Conversation / match status. */\nexport const matchStatusSchema = z.enum(['active', 'unmatched', 'blocked']);\nexport type MatchStatus = z.infer<typeof matchStatusSchema>;\n\n// ─── Shared sub-schemas ──────────────────────────────────────────────────────\n\n/** Age range preference filter. */\nexport const ageRangeSchema = z\n .object({\n min: z.number().int().min(18).max(100),\n max: z.number().int().min(18).max(100),\n })\n .refine((r) => r.min <= r.max, 'min age must be less than or equal to max age');\nexport type AgeRange = z.infer<typeof ageRangeSchema>;\n\n/** A single dating profile photo. */\nexport const photoSchema = z.object({\n url: z.string().trim().min(1),\n order: z.number().int().min(0),\n assetId: z.string().trim().optional(),\n mimeType: z.string().trim().optional(),\n sizeBytes: z.number().min(0).optional(),\n});\nexport type Photo = z.infer<typeof photoSchema>;\n\n/** Pagination query params shared across list endpoints. */\nexport const paginationSchema = z.object({\n page: z.coerce.number().int().min(1).default(1),\n limit: z.coerce.number().int().min(1).max(100).default(20),\n});\nexport type Pagination = z.infer<typeof paginationSchema>;\n"]}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * dating-schema — Shared helpers and core enums\n *\n * These are the stable building blocks reused across all dating schemas.\n *\n * @module dating-schema/common\n */\n\nimport { GENDER_VALUES } from 'udp-schema';\nimport { z } from 'zod';\n\n// ─── String helpers ──────────────────────────────────────────────────────────\n\n/**\n * Converts empty / whitespace-only strings to `undefined`\n * so Zod `.optional()` treats them as \"not provided\".\n */\nexport const emptyStringToUndefined = (value: unknown): unknown => {\n if (typeof value === 'string' && value.trim() === '') return undefined;\n return value;\n};\n\n/** Optional trimmed string. Empty strings are coerced to `undefined`. */\nexport const optionalTrimmedString = (maxLength = 100) =>\n z.preprocess(emptyStringToUndefined, z.string().trim().max(maxLength).optional());\n\n// ─── Core enums ──────────────────────────────────────────────────────────────\n\n/**\n * Self-identified gender imported from udp-schema's canonical\n * 17-value `GENDER_VALUES`. Shared across UDP step-01, dating, and\n * any future service profile so values never drift.\n *\n * BREAKING CHANGE from previous 4-value list (`male` / `female` /\n * `non_binary` / `prefer_not_to_say`). Old `male` / `female` values\n * are gone — use `man` / `woman` instead. Any frontend code that\n * hardcoded the old strings will fail at the input dropdown level\n * (the new enum doesn't accept them).\n */\nexport const genderSchema = z.enum(GENDER_VALUES);\nexport type Gender = z.infer<typeof genderSchema>;\n\n/** Who the user is interested in meeting. */\nexport const interestedInSchema = z.enum(['male', 'female', 'everyone']);\nexport type InterestedIn = z.infer<typeof interestedInSchema>;\n\n/** Swipe / interaction action a user can take on another profile. */\nexport const swipeActionSchema = z.enum(['like', 'pass']);\nexport type SwipeAction = z.infer<typeof swipeActionSchema>;\n\n/** Current marital / relationship history status. */\nexport const maritalStatusSchema = z.enum(['never_married', 'divorced', 'widowed', 'separated']);\nexport type MaritalStatus = z.infer<typeof maritalStatusSchema>;\n\n/** What the user is looking for on the platform. */\nexport const lookingForSchema = z.enum(['serious_relationship', 'friendship', 'open_to_all']);\nexport type LookingFor = z.infer<typeof lookingForSchema>;\n\n/** Message content type. */\nexport const messageTypeSchema = z.enum(['text', 'image', 'gif']);\nexport type MessageType = z.infer<typeof messageTypeSchema>;\n\n/** Conversation / match status. */\nexport const matchStatusSchema = z.enum(['active', 'unmatched', 'blocked']);\nexport type MatchStatus = z.infer<typeof matchStatusSchema>;\n\n// ─── Shared sub-schemas ──────────────────────────────────────────────────────\n\n/** Age range preference filter. */\nexport const ageRangeSchema = z\n .object({\n min: z.number().int().min(18).max(100),\n max: z.number().int().min(18).max(100),\n })\n .refine((r) => r.min <= r.max, 'min age must be less than or equal to max age');\nexport type AgeRange = z.infer<typeof ageRangeSchema>;\n\n/** A single dating profile photo. */\nexport const photoSchema = z.object({\n url: z.string().trim().min(1),\n order: z.number().int().min(0),\n assetId: z.string().trim().optional(),\n mimeType: z.string().trim().optional(),\n sizeBytes: z.number().min(0).optional(),\n});\nexport type Photo = z.infer<typeof photoSchema>;\n\n/** Pagination query params shared across list endpoints. */\nexport const paginationSchema = z.object({\n page: z.coerce.number().int().min(1).default(1),\n limit: z.coerce.number().int().min(1).max(100).default(20),\n});\nexport type Pagination = z.infer<typeof paginationSchema>;\n"]}
package/dist/profile.d.ts CHANGED
@@ -18,10 +18,9 @@ export declare const fullProfileSchema: z.ZodObject<{
18
18
  displayName: z.ZodOptional<z.ZodString>;
19
19
  dateOfBirth: z.ZodOptional<z.ZodCoercedDate<unknown>>;
20
20
  gender: z.ZodOptional<z.ZodEnum<{
21
- non_binary: "non_binary";
22
- prefer_not_to_say: "prefer_not_to_say";
23
21
  man: "man";
24
22
  woman: "woman";
23
+ non_binary: "non_binary";
25
24
  trans_man: "trans_man";
26
25
  trans_woman: "trans_woman";
27
26
  genderfluid: "genderfluid";
@@ -35,6 +34,7 @@ export declare const fullProfileSchema: z.ZodObject<{
35
34
  two_spirit: "two_spirit";
36
35
  hijra: "hijra";
37
36
  other: "other";
37
+ prefer_not_to_say: "prefer_not_to_say";
38
38
  }>>;
39
39
  phoneNumber: z.ZodOptional<z.ZodString>;
40
40
  phoneVisible: z.ZodOptional<z.ZodBoolean>;
@@ -57,8 +57,8 @@ export declare const fullProfileSchema: z.ZodObject<{
57
57
  visible: z.ZodDefault<z.ZodBoolean>;
58
58
  }, z.core.$strip>>;
59
59
  pronouns: z.ZodOptional<z.ZodEnum<{
60
- prefer_not_to_say: "prefer_not_to_say";
61
60
  other: "other";
61
+ prefer_not_to_say: "prefer_not_to_say";
62
62
  he_him: "he_him";
63
63
  she_her: "she_her";
64
64
  they_them: "they_them";
@@ -292,8 +292,8 @@ export declare const fullProfileSchema: z.ZodObject<{
292
292
  very_dark: "very_dark";
293
293
  }>>;
294
294
  familyReligion: z.ZodOptional<z.ZodEnum<{
295
- prefer_not_to_say: "prefer_not_to_say";
296
295
  other: "other";
296
+ prefer_not_to_say: "prefer_not_to_say";
297
297
  spiritual: "spiritual";
298
298
  hindu: "hindu";
299
299
  muslim_sunni: "muslim_sunni";
@@ -316,8 +316,8 @@ export declare const fullProfileSchema: z.ZodObject<{
316
316
  inter_religion: "inter_religion";
317
317
  }>>;
318
318
  personalReligion: z.ZodOptional<z.ZodEnum<{
319
- prefer_not_to_say: "prefer_not_to_say";
320
319
  other: "other";
320
+ prefer_not_to_say: "prefer_not_to_say";
321
321
  spiritual: "spiritual";
322
322
  hindu: "hindu";
323
323
  muslim_sunni: "muslim_sunni";
@@ -461,8 +461,8 @@ export declare const fullProfileSchema: z.ZodObject<{
461
461
  open_distance: "open_distance";
462
462
  }>>;
463
463
  profession: z.ZodOptional<z.ZodEnum<{
464
- prefer_not_to_say: "prefer_not_to_say";
465
464
  other: "other";
465
+ prefer_not_to_say: "prefer_not_to_say";
466
466
  it_software: "it_software";
467
467
  engineering: "engineering";
468
468
  healthcare_doctor: "healthcare_doctor";
@@ -515,8 +515,8 @@ export declare const fullProfileSchema: z.ZodObject<{
515
515
  its_complicated: "its_complicated";
516
516
  }>>;
517
517
  diet: z.ZodOptional<z.ZodEnum<{
518
- prefer_not_to_say: "prefer_not_to_say";
519
518
  other: "other";
519
+ prefer_not_to_say: "prefer_not_to_say";
520
520
  vegetarian: "vegetarian";
521
521
  vegan: "vegan";
522
522
  eggetarian: "eggetarian";
@@ -632,10 +632,9 @@ export declare const fullProfileSchema: z.ZodObject<{
632
632
  hometownDistrictId: z.ZodOptional<z.ZodString>;
633
633
  myStory: z.ZodOptional<z.ZodString>;
634
634
  preferredGenders: z.ZodOptional<z.ZodArray<z.ZodEnum<{
635
- non_binary: "non_binary";
636
- prefer_not_to_say: "prefer_not_to_say";
637
635
  man: "man";
638
636
  woman: "woman";
637
+ non_binary: "non_binary";
639
638
  trans_man: "trans_man";
640
639
  trans_woman: "trans_woman";
641
640
  genderfluid: "genderfluid";
@@ -649,6 +648,7 @@ export declare const fullProfileSchema: z.ZodObject<{
649
648
  two_spirit: "two_spirit";
650
649
  hijra: "hijra";
651
650
  other: "other";
651
+ prefer_not_to_say: "prefer_not_to_say";
652
652
  }>>>;
653
653
  horoscopeMatchRequired: z.ZodOptional<z.ZodString>;
654
654
  varna: z.ZodOptional<z.ZodString>;
@@ -1033,8 +1033,8 @@ export declare const fullProfileSchema: z.ZodObject<{
1033
1033
  once_a_year: "once_a_year";
1034
1034
  }>>;
1035
1035
  livingSituation: z.ZodOptional<z.ZodEnum<{
1036
- prefer_not_to_say: "prefer_not_to_say";
1037
1036
  other: "other";
1037
+ prefer_not_to_say: "prefer_not_to_say";
1038
1038
  alone: "alone";
1039
1039
  roommates: "roommates";
1040
1040
  family: "family";
@@ -1241,8 +1241,8 @@ export declare const fullProfileSchema: z.ZodObject<{
1241
1241
  mixed: "mixed";
1242
1242
  }>>;
1243
1243
  knowledgeAreas: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1244
- prefer_not_to_say: "prefer_not_to_say";
1245
1244
  other: "other";
1245
+ prefer_not_to_say: "prefer_not_to_say";
1246
1246
  languages: "languages";
1247
1247
  science: "science";
1248
1248
  history: "history";
@@ -1480,8 +1480,8 @@ export declare const fullProfileSchema: z.ZodObject<{
1480
1480
  }>>;
1481
1481
  parentsContactNumber: z.ZodOptional<z.ZodString>;
1482
1482
  fatherOccupation: z.ZodOptional<z.ZodEnum<{
1483
- prefer_not_to_say: "prefer_not_to_say";
1484
1483
  other: "other";
1484
+ prefer_not_to_say: "prefer_not_to_say";
1485
1485
  it_software: "it_software";
1486
1486
  engineering: "engineering";
1487
1487
  science_research: "science_research";
@@ -1504,8 +1504,8 @@ export declare const fullProfileSchema: z.ZodObject<{
1504
1504
  deceased: "deceased";
1505
1505
  }>>;
1506
1506
  motherOccupation: z.ZodOptional<z.ZodEnum<{
1507
- prefer_not_to_say: "prefer_not_to_say";
1508
1507
  other: "other";
1508
+ prefer_not_to_say: "prefer_not_to_say";
1509
1509
  it_software: "it_software";
1510
1510
  engineering: "engineering";
1511
1511
  science_research: "science_research";
@@ -1638,8 +1638,8 @@ export declare const fullProfileSchema: z.ZodObject<{
1638
1638
  employer: "employer";
1639
1639
  }>>;
1640
1640
  citizenship: z.ZodOptional<z.ZodEnum<{
1641
- prefer_not_to_say: "prefer_not_to_say";
1642
1641
  other: "other";
1642
+ prefer_not_to_say: "prefer_not_to_say";
1643
1643
  citizen: "citizen";
1644
1644
  permanent_resident: "permanent_resident";
1645
1645
  work_visa: "work_visa";
@@ -1670,8 +1670,8 @@ export declare const fullProfileSchema: z.ZodObject<{
1670
1670
  }>>;
1671
1671
  grewUpIn: z.ZodOptional<z.ZodString>;
1672
1672
  countryOfResidence: z.ZodOptional<z.ZodEnum<{
1673
- prefer_not_to_say: "prefer_not_to_say";
1674
1673
  other: "other";
1674
+ prefer_not_to_say: "prefer_not_to_say";
1675
1675
  india: "india";
1676
1676
  usa: "usa";
1677
1677
  uk: "uk";
@@ -1690,8 +1690,8 @@ export declare const fullProfileSchema: z.ZodObject<{
1690
1690
  oman: "oman";
1691
1691
  }>>;
1692
1692
  visaType: z.ZodOptional<z.ZodEnum<{
1693
- prefer_not_to_say: "prefer_not_to_say";
1694
1693
  other: "other";
1694
+ prefer_not_to_say: "prefer_not_to_say";
1695
1695
  student: "student";
1696
1696
  not_applicable: "not_applicable";
1697
1697
  citizen: "citizen";
@@ -1715,8 +1715,8 @@ export declare const fullProfileSchema: z.ZodObject<{
1715
1715
  chronic_condition: "chronic_condition";
1716
1716
  }>>;
1717
1717
  chronicCondition: z.ZodOptional<z.ZodEnum<{
1718
- prefer_not_to_say: "prefer_not_to_say";
1719
1718
  other: "other";
1719
+ prefer_not_to_say: "prefer_not_to_say";
1720
1720
  mental_health: "mental_health";
1721
1721
  none: "none";
1722
1722
  multiple: "multiple";
@@ -1735,8 +1735,8 @@ export declare const fullProfileSchema: z.ZodObject<{
1735
1735
  currently_treating: "currently_treating";
1736
1736
  }>>;
1737
1737
  neurodiversity: z.ZodOptional<z.ZodEnum<{
1738
- prefer_not_to_say: "prefer_not_to_say";
1739
1738
  other: "other";
1739
+ prefer_not_to_say: "prefer_not_to_say";
1740
1740
  multiple: "multiple";
1741
1741
  neurotypical: "neurotypical";
1742
1742
  adhd: "adhd";
@@ -2079,10 +2079,9 @@ export declare const updateProfileSchema: z.ZodObject<{
2079
2079
  displayName: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2080
2080
  dateOfBirth: z.ZodOptional<z.ZodOptional<z.ZodCoercedDate<unknown>>>;
2081
2081
  gender: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
2082
- non_binary: "non_binary";
2083
- prefer_not_to_say: "prefer_not_to_say";
2084
2082
  man: "man";
2085
2083
  woman: "woman";
2084
+ non_binary: "non_binary";
2086
2085
  trans_man: "trans_man";
2087
2086
  trans_woman: "trans_woman";
2088
2087
  genderfluid: "genderfluid";
@@ -2096,6 +2095,7 @@ export declare const updateProfileSchema: z.ZodObject<{
2096
2095
  two_spirit: "two_spirit";
2097
2096
  hijra: "hijra";
2098
2097
  other: "other";
2098
+ prefer_not_to_say: "prefer_not_to_say";
2099
2099
  }>>>;
2100
2100
  phoneNumber: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2101
2101
  phoneVisible: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
@@ -2118,8 +2118,8 @@ export declare const updateProfileSchema: z.ZodObject<{
2118
2118
  visible: z.ZodDefault<z.ZodBoolean>;
2119
2119
  }, z.core.$strip>>>;
2120
2120
  pronouns: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
2121
- prefer_not_to_say: "prefer_not_to_say";
2122
2121
  other: "other";
2122
+ prefer_not_to_say: "prefer_not_to_say";
2123
2123
  he_him: "he_him";
2124
2124
  she_her: "she_her";
2125
2125
  they_them: "they_them";
@@ -2353,8 +2353,8 @@ export declare const updateProfileSchema: z.ZodObject<{
2353
2353
  very_dark: "very_dark";
2354
2354
  }>>>;
2355
2355
  familyReligion: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
2356
- prefer_not_to_say: "prefer_not_to_say";
2357
2356
  other: "other";
2357
+ prefer_not_to_say: "prefer_not_to_say";
2358
2358
  spiritual: "spiritual";
2359
2359
  hindu: "hindu";
2360
2360
  muslim_sunni: "muslim_sunni";
@@ -2377,8 +2377,8 @@ export declare const updateProfileSchema: z.ZodObject<{
2377
2377
  inter_religion: "inter_religion";
2378
2378
  }>>>;
2379
2379
  personalReligion: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
2380
- prefer_not_to_say: "prefer_not_to_say";
2381
2380
  other: "other";
2381
+ prefer_not_to_say: "prefer_not_to_say";
2382
2382
  spiritual: "spiritual";
2383
2383
  hindu: "hindu";
2384
2384
  muslim_sunni: "muslim_sunni";
@@ -2522,8 +2522,8 @@ export declare const updateProfileSchema: z.ZodObject<{
2522
2522
  open_distance: "open_distance";
2523
2523
  }>>>;
2524
2524
  profession: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
2525
- prefer_not_to_say: "prefer_not_to_say";
2526
2525
  other: "other";
2526
+ prefer_not_to_say: "prefer_not_to_say";
2527
2527
  it_software: "it_software";
2528
2528
  engineering: "engineering";
2529
2529
  healthcare_doctor: "healthcare_doctor";
@@ -2576,8 +2576,8 @@ export declare const updateProfileSchema: z.ZodObject<{
2576
2576
  its_complicated: "its_complicated";
2577
2577
  }>>>;
2578
2578
  diet: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
2579
- prefer_not_to_say: "prefer_not_to_say";
2580
2579
  other: "other";
2580
+ prefer_not_to_say: "prefer_not_to_say";
2581
2581
  vegetarian: "vegetarian";
2582
2582
  vegan: "vegan";
2583
2583
  eggetarian: "eggetarian";
@@ -2693,10 +2693,9 @@ export declare const updateProfileSchema: z.ZodObject<{
2693
2693
  hometownDistrictId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2694
2694
  myStory: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2695
2695
  preferredGenders: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodEnum<{
2696
- non_binary: "non_binary";
2697
- prefer_not_to_say: "prefer_not_to_say";
2698
2696
  man: "man";
2699
2697
  woman: "woman";
2698
+ non_binary: "non_binary";
2700
2699
  trans_man: "trans_man";
2701
2700
  trans_woman: "trans_woman";
2702
2701
  genderfluid: "genderfluid";
@@ -2710,6 +2709,7 @@ export declare const updateProfileSchema: z.ZodObject<{
2710
2709
  two_spirit: "two_spirit";
2711
2710
  hijra: "hijra";
2712
2711
  other: "other";
2712
+ prefer_not_to_say: "prefer_not_to_say";
2713
2713
  }>>>>;
2714
2714
  horoscopeMatchRequired: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2715
2715
  varna: z.ZodOptional<z.ZodOptional<z.ZodString>>;
@@ -3094,8 +3094,8 @@ export declare const updateProfileSchema: z.ZodObject<{
3094
3094
  once_a_year: "once_a_year";
3095
3095
  }>>>;
3096
3096
  livingSituation: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3097
- prefer_not_to_say: "prefer_not_to_say";
3098
3097
  other: "other";
3098
+ prefer_not_to_say: "prefer_not_to_say";
3099
3099
  alone: "alone";
3100
3100
  roommates: "roommates";
3101
3101
  family: "family";
@@ -3302,8 +3302,8 @@ export declare const updateProfileSchema: z.ZodObject<{
3302
3302
  mixed: "mixed";
3303
3303
  }>>>;
3304
3304
  knowledgeAreas: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodEnum<{
3305
- prefer_not_to_say: "prefer_not_to_say";
3306
3305
  other: "other";
3306
+ prefer_not_to_say: "prefer_not_to_say";
3307
3307
  languages: "languages";
3308
3308
  science: "science";
3309
3309
  history: "history";
@@ -3541,8 +3541,8 @@ export declare const updateProfileSchema: z.ZodObject<{
3541
3541
  }>>>;
3542
3542
  parentsContactNumber: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3543
3543
  fatherOccupation: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3544
- prefer_not_to_say: "prefer_not_to_say";
3545
3544
  other: "other";
3545
+ prefer_not_to_say: "prefer_not_to_say";
3546
3546
  it_software: "it_software";
3547
3547
  engineering: "engineering";
3548
3548
  science_research: "science_research";
@@ -3565,8 +3565,8 @@ export declare const updateProfileSchema: z.ZodObject<{
3565
3565
  deceased: "deceased";
3566
3566
  }>>>;
3567
3567
  motherOccupation: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3568
- prefer_not_to_say: "prefer_not_to_say";
3569
3568
  other: "other";
3569
+ prefer_not_to_say: "prefer_not_to_say";
3570
3570
  it_software: "it_software";
3571
3571
  engineering: "engineering";
3572
3572
  science_research: "science_research";
@@ -3699,8 +3699,8 @@ export declare const updateProfileSchema: z.ZodObject<{
3699
3699
  employer: "employer";
3700
3700
  }>>>;
3701
3701
  citizenship: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3702
- prefer_not_to_say: "prefer_not_to_say";
3703
3702
  other: "other";
3703
+ prefer_not_to_say: "prefer_not_to_say";
3704
3704
  citizen: "citizen";
3705
3705
  permanent_resident: "permanent_resident";
3706
3706
  work_visa: "work_visa";
@@ -3731,8 +3731,8 @@ export declare const updateProfileSchema: z.ZodObject<{
3731
3731
  }>>>;
3732
3732
  grewUpIn: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3733
3733
  countryOfResidence: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3734
- prefer_not_to_say: "prefer_not_to_say";
3735
3734
  other: "other";
3735
+ prefer_not_to_say: "prefer_not_to_say";
3736
3736
  india: "india";
3737
3737
  usa: "usa";
3738
3738
  uk: "uk";
@@ -3751,8 +3751,8 @@ export declare const updateProfileSchema: z.ZodObject<{
3751
3751
  oman: "oman";
3752
3752
  }>>>;
3753
3753
  visaType: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3754
- prefer_not_to_say: "prefer_not_to_say";
3755
3754
  other: "other";
3755
+ prefer_not_to_say: "prefer_not_to_say";
3756
3756
  student: "student";
3757
3757
  not_applicable: "not_applicable";
3758
3758
  citizen: "citizen";
@@ -3776,8 +3776,8 @@ export declare const updateProfileSchema: z.ZodObject<{
3776
3776
  chronic_condition: "chronic_condition";
3777
3777
  }>>>;
3778
3778
  chronicCondition: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3779
- prefer_not_to_say: "prefer_not_to_say";
3780
3779
  other: "other";
3780
+ prefer_not_to_say: "prefer_not_to_say";
3781
3781
  mental_health: "mental_health";
3782
3782
  none: "none";
3783
3783
  multiple: "multiple";
@@ -3796,8 +3796,8 @@ export declare const updateProfileSchema: z.ZodObject<{
3796
3796
  currently_treating: "currently_treating";
3797
3797
  }>>>;
3798
3798
  neurodiversity: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3799
- prefer_not_to_say: "prefer_not_to_say";
3800
3799
  other: "other";
3800
+ prefer_not_to_say: "prefer_not_to_say";
3801
3801
  multiple: "multiple";
3802
3802
  neurotypical: "neurotypical";
3803
3803
  adhd: "adhd";
@@ -1 +1 @@
1
- {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmiExB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkU5B,CAAC;AAMH;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyF9B,CAAC;AAMH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA8B,CAAC;AAa/D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8D/B,CAAC;AAMH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAChE;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAIpF;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACtE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACrE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA09DxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkU5B,CAAC;AAMH;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyF9B,CAAC;AAMH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA8B,CAAC;AAa/D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8D/B,CAAC;AAMH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAChE;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAIpF;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACtE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACrE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
package/dist/profile.js CHANGED
@@ -6,31 +6,18 @@
6
6
  *
7
7
  * @module dating-schema/profile
8
8
  */
9
+ import { GENDER_VALUES, OCCUPATION_VALUES, RELIGION_VALUES } from 'udp-schema';
9
10
  import { z } from 'zod';
10
11
  import { photoSchema } from './common.js';
11
12
  // ─── Helper: extract option values from field config ─────────────────────────
12
13
  /** Build a z.enum() from a field config's options array values. */
13
14
  const opts = (values) => z.enum(values);
14
15
  // ─── 01. Hero & Identity ─────────────────────────────────────────────────────
15
- const genderOpts = opts([
16
- 'man',
17
- 'woman',
18
- 'non_binary',
19
- 'trans_man',
20
- 'trans_woman',
21
- 'genderfluid',
22
- 'genderqueer',
23
- 'agender',
24
- 'bigender',
25
- 'pangender',
26
- 'androgynous',
27
- 'intersex',
28
- 'gender_nonconforming',
29
- 'two_spirit',
30
- 'hijra',
31
- 'other',
32
- 'prefer_not_to_say',
33
- ]);
16
+ /** Gender imported from udp-schema/shared-enums to keep the
17
+ * 17-value enum in lockstep with UDP step-01 + future service
18
+ * profiles. NEVER duplicate the values here — `udp-schema`'s
19
+ * `GENDER_VALUES` is the canonical source. */
20
+ const genderOpts = z.enum(GENDER_VALUES);
34
21
  const pronounsOpts = opts([
35
22
  'he_him',
36
23
  'she_her',
@@ -162,30 +149,9 @@ const complexionOpts = opts([
162
149
  'very_dark',
163
150
  'prefer_not_to_say',
164
151
  ]);
165
- const religionOpts = opts([
166
- 'hindu',
167
- 'muslim_sunni',
168
- 'muslim_shia',
169
- 'muslim_sufi',
170
- 'muslim_other',
171
- 'christian_catholic',
172
- 'christian_protestant',
173
- 'christian_other',
174
- 'sikh',
175
- 'jain_digambar',
176
- 'jain_shwetambar',
177
- 'buddhist',
178
- 'parsi_zoroastrian',
179
- 'jewish',
180
- 'bahai',
181
- 'spiritual',
182
- 'atheist',
183
- 'agnostic',
184
- 'no_religion',
185
- 'inter_religion',
186
- 'other',
187
- 'prefer_not_to_say',
188
- ]);
152
+ /** Religion imported from udp-schema/shared-enums. 22 denominated
153
+ * values shared with UDP step-01's familyReligion + personalReligion. */
154
+ const religionOpts = z.enum(RELIGION_VALUES);
189
155
  const religionPracticeLevelOpts = opts([
190
156
  'devout',
191
157
  'weekly',
@@ -306,48 +272,10 @@ const institutionTierOpts = opts([
306
272
  'open_distance',
307
273
  'prefer_not_to_say',
308
274
  ]);
309
- const professionOpts = opts([
310
- 'it_software',
311
- 'engineering',
312
- 'healthcare_doctor',
313
- 'healthcare_nursing',
314
- 'healthcare_pharma',
315
- 'psychology_therapy',
316
- 'education_teaching',
317
- 'science_research',
318
- 'finance_banking',
319
- 'chartered_accountant',
320
- 'business_management',
321
- 'arts_entertainment',
322
- 'media_communication',
323
- 'design_creative',
324
- 'civil_services',
325
- 'government_public',
326
- 'defence_military',
327
- 'police_law_enforcement',
328
- 'legal',
329
- 'skilled_trades',
330
- 'transport_logistics',
331
- 'hospitality_travel',
332
- 'beauty_wellness',
333
- 'agriculture_farming',
334
- 'real_estate',
335
- 'retail_ecommerce',
336
- 'manufacturing',
337
- 'merchant_navy',
338
- 'ngo_social_work',
339
- 'religious_spiritual',
340
- 'freelancer_gig',
341
- 'content_creator',
342
- 'self_employed',
343
- 'student',
344
- 'homemaker',
345
- 'retired',
346
- 'not_working',
347
- 'differently_abled_pension',
348
- 'other',
349
- 'prefer_not_to_say',
350
- ]);
275
+ /** Profession / occupation — imported from udp-schema/shared-enums.
276
+ * 39-value taxonomy shared with UDP step-07's `occupation` +
277
+ * `dreamOccupation`. */
278
+ const professionOpts = z.enum(OCCUPATION_VALUES);
351
279
  const relationshipStatusOpts = opts([
352
280
  'never_married',
353
281
  'dating',
@@ -465,7 +393,7 @@ const rashiOpts = opts([
465
393
  'dont_know',
466
394
  'prefer_not_to_say',
467
395
  ]);
468
- // hometownState uses z.string() — no enum needed (values come from area-entity API)
396
+ // hometownState uses z.string() — no enum needed (values come from area search API)
469
397
  // ─── 04. What I'm Looking For ────────────────────────────────────────────────
470
398
  const relationshipRoleOpts = opts([
471
399
  'mentor',
@@ -1886,7 +1814,7 @@ const areaRefSchema = z.object({
1886
1814
  const currentLocationSchema = z.object({
1887
1815
  displayName: z.string().optional(),
1888
1816
  country: areaRefSchema.optional(),
1889
- // Full area hierarchy — each { _id, name, type } traces back to AreaEntity in survey-db
1817
+ // Full area hierarchy — each { _id, name, type } traces back to Area in location-db
1890
1818
  state: areaRefSchema.optional(),
1891
1819
  district: areaRefSchema.optional(),
1892
1820
  areaType: z.enum(['RURAL', 'URBAN']).optional(),