dating-schema 0.39.2 → 0.41.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 (56) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/plan-features-data.d.ts +2 -0
  6. package/dist/plan-features-data.d.ts.map +1 -1
  7. package/dist/plan-features-data.js +44 -52
  8. package/dist/plan-features-data.js.map +1 -1
  9. package/dist/plan-limits.d.ts +9 -7
  10. package/dist/plan-limits.d.ts.map +1 -1
  11. package/dist/plan-limits.js +43 -74
  12. package/dist/plan-limits.js.map +1 -1
  13. package/dist/profile-fields/01-hero-identity.d.ts.map +1 -1
  14. package/dist/profile-fields/01-hero-identity.js +66 -0
  15. package/dist/profile-fields/01-hero-identity.js.map +1 -1
  16. package/dist/profile-fields/02-story-prompts.d.ts.map +1 -1
  17. package/dist/profile-fields/02-story-prompts.js +12 -0
  18. package/dist/profile-fields/02-story-prompts.js.map +1 -1
  19. package/dist/profile-fields/03-basics.d.ts.map +1 -1
  20. package/dist/profile-fields/03-basics.js +13 -112
  21. package/dist/profile-fields/03-basics.js.map +1 -1
  22. package/dist/profile-fields/04-looking-for.d.ts.map +1 -1
  23. package/dist/profile-fields/04-looking-for.js +15 -0
  24. package/dist/profile-fields/04-looking-for.js.map +1 -1
  25. package/dist/profile-fields/05-personality.d.ts.map +1 -1
  26. package/dist/profile-fields/05-personality.js +66 -0
  27. package/dist/profile-fields/05-personality.js.map +1 -1
  28. package/dist/profile-fields/13-relationship-intimacy.d.ts.map +1 -1
  29. package/dist/profile-fields/13-relationship-intimacy.js +57 -0
  30. package/dist/profile-fields/13-relationship-intimacy.js.map +1 -1
  31. package/dist/profile-fields/14-family-home.d.ts.map +1 -1
  32. package/dist/profile-fields/14-family-home.js +97 -0
  33. package/dist/profile-fields/14-family-home.js.map +1 -1
  34. package/dist/profile-fields/15-finance-legal.d.ts.map +1 -1
  35. package/dist/profile-fields/15-finance-legal.js +39 -0
  36. package/dist/profile-fields/15-finance-legal.js.map +1 -1
  37. package/dist/profile-fields/17-religion-community.d.ts +3 -0
  38. package/dist/profile-fields/17-religion-community.d.ts.map +1 -0
  39. package/dist/profile-fields/17-religion-community.js +687 -0
  40. package/dist/profile-fields/17-religion-community.js.map +1 -0
  41. package/dist/profile-fields/index.d.ts +1 -0
  42. package/dist/profile-fields/index.d.ts.map +1 -1
  43. package/dist/profile-fields/index.js +3 -0
  44. package/dist/profile-fields/index.js.map +1 -1
  45. package/dist/profile-fields/types.d.ts +6 -0
  46. package/dist/profile-fields/types.d.ts.map +1 -1
  47. package/dist/profile-fields/types.js.map +1 -1
  48. package/dist/profile.d.ts +74 -28
  49. package/dist/profile.d.ts.map +1 -1
  50. package/dist/profile.js +24 -0
  51. package/dist/profile.js.map +1 -1
  52. package/dist/subscription.d.ts +2 -3
  53. package/dist/subscription.d.ts.map +1 -1
  54. package/dist/subscription.js +1 -1
  55. package/dist/subscription.js.map +1 -1
  56. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -12,7 +12,7 @@ export { type BoostBody, boostBodySchema, type ComplimentBody, complimentBodySch
12
12
  export { getOnboardingFieldConfig, ONBOARDING_FIELDS, ONBOARDING_STEP_GROUPS, ONBOARDING_TOTAL_MAIN_STEPS, ONBOARDING_TOTAL_SUB_STEPS, type OnboardingFieldConfig, type OnboardingStepGroup, } from './onboarding-config.js';
13
13
  export { type BooleanFeatureKey, type EnumFeatureKey, type ExploreAccessLevel, type FeatureDisplayItem, type FeatureKey, type FeatureValue, type FilterLevel, getMinPlanForFeature, getPlanFeatureDisplay, getPlanLimit, getPlanLimits, hasRemainingQuota, isFeatureEnabled, isPaidPlan, type NumericFeatureKey, PAID_PLANS, PLAN_FEATURE_DISPLAY, PLAN_IDS, PLAN_LIMITS, type PlanId, type PlanLimits, PREMIUM_EXPLORE_CATEGORIES, PREMIUM_PLANS, renderFeatureValue, type ScoreBreakdownLevel, TOP_PLANS, type WhoLikedYouLevel, } from './plan-limits.js';
14
14
  export { type CreateProfileInput, createProfileSchema, type FullProfileData, fullProfileSchema, getCognitiveBandRank, type OnboardingFormData, onboardingFormSchema, type UpdateProfileInput, updateProfileSchema, } from './profile.js';
15
- export { allFieldGroups, basics, career, cognitive, type FieldGroup, type FieldOption, familyHome, favourites, financeLegal, healthWellness, heroIdentity, interestCategories, interests, lifestyle, lookingFor, type MultiSelectField, type OptionCategory, type ProfileField, personality, relationshipIntimacy, type SelectField, selfAssessment, storyPrompts, values, } from './profile-fields/index.js';
15
+ export { allFieldGroups, basics, career, cognitive, type FieldGroup, type FieldOption, familyHome, favourites, financeLegal, healthWellness, heroIdentity, interestCategories, interests, lifestyle, lookingFor, type MultiSelectField, type OptionCategory, type ProfileField, personality, relationshipIntimacy, religionCommunity, type SelectField, selfAssessment, storyPrompts, values, } from './profile-fields/index.js';
16
16
  export { type BlockBody, blockBodySchema, type ReportBody, type ReportReason, type ReportStatus, reportBodySchema, reportReasonSchema, reportStatusSchema, } from './safety.js';
17
17
  export { type CreateSubscriptionBody, createSubscriptionBodySchema, type SubscriptionStatus, subscriptionStatusSchema, type Tenure, tenureSchema, } from './subscription.js';
18
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,KAAK,QAAQ,EAEb,cAAc,EACd,sBAAsB,EACtB,KAAK,MAAM,EAEX,YAAY,EACZ,KAAK,YAAY,EACjB,kBAAkB,EAClB,KAAK,UAAU,EACf,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,UAAU,EACf,KAAK,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,KAAK,WAAW,EAChB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEnE,OAAO,EACL,KAAK,SAAS,EACd,eAAe,EACf,KAAK,cAAc,EACnB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,EACrB,KAAK,UAAU,EACf,gBAAgB,EAChB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,eAAe,EACf,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,KAAK,iBAAiB,EACtB,UAAU,EACV,oBAAoB,EACpB,QAAQ,EACR,WAAW,EACX,KAAK,MAAM,EACX,KAAK,UAAU,EACf,0BAA0B,EAC1B,aAAa,EACb,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,SAAS,EACT,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,KAAK,kBAAkB,EACvB,mBAAmB,EACnB,KAAK,eAAe,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,EACd,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,WAAW,EACX,oBAAoB,EACpB,KAAK,WAAW,EAChB,cAAc,EACd,YAAY,EACZ,MAAM,GACP,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,KAAK,SAAS,EACd,eAAe,EACf,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,KAAK,sBAAsB,EAC3B,4BAA4B,EAC5B,KAAK,kBAAkB,EACvB,wBAAwB,EACxB,KAAK,MAAM,EACX,YAAY,GACb,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,KAAK,QAAQ,EAEb,cAAc,EACd,sBAAsB,EACtB,KAAK,MAAM,EAEX,YAAY,EACZ,KAAK,YAAY,EACjB,kBAAkB,EAClB,KAAK,UAAU,EACf,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,UAAU,EACf,KAAK,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,KAAK,WAAW,EAChB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEnE,OAAO,EACL,KAAK,SAAS,EACd,eAAe,EACf,KAAK,cAAc,EACnB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,EACrB,KAAK,UAAU,EACf,gBAAgB,EAChB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,eAAe,EACf,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,KAAK,iBAAiB,EACtB,UAAU,EACV,oBAAoB,EACpB,QAAQ,EACR,WAAW,EACX,KAAK,MAAM,EACX,KAAK,UAAU,EACf,0BAA0B,EAC1B,aAAa,EACb,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,SAAS,EACT,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,KAAK,kBAAkB,EACvB,mBAAmB,EACnB,KAAK,eAAe,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,EACd,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,WAAW,EAChB,cAAc,EACd,YAAY,EACZ,MAAM,GACP,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,KAAK,SAAS,EACd,eAAe,EACf,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,KAAK,sBAAsB,EAC3B,4BAA4B,EAC5B,KAAK,kBAAkB,EACvB,wBAAwB,EACxB,KAAK,MAAM,EACX,YAAY,GACb,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -21,7 +21,7 @@ export { getMinPlanForFeature, getPlanFeatureDisplay, getPlanLimit, getPlanLimit
21
21
  // ─── Profile schemas ─────────────────────────────────────────────────────────
22
22
  export { createProfileSchema, fullProfileSchema, getCognitiveBandRank, onboardingFormSchema, updateProfileSchema, } from './profile.js';
23
23
  // ─── Profile field configs (option arrays with labels for UI rendering) ──────
24
- export { allFieldGroups, basics, career, cognitive, familyHome, favourites, financeLegal, healthWellness, heroIdentity, interestCategories, interests, lifestyle, lookingFor, personality, relationshipIntimacy, selfAssessment, storyPrompts, values, } from './profile-fields/index.js';
24
+ export { allFieldGroups, basics, career, cognitive, familyHome, favourites, financeLegal, healthWellness, heroIdentity, interestCategories, interests, lifestyle, lookingFor, personality, relationshipIntimacy, religionCommunity, selfAssessment, storyPrompts, values, } from './profile-fields/index.js';
25
25
  // ─── Safety schemas ──────────────────────────────────────────────────────────
26
26
  export { blockBodySchema, reportBodySchema, reportReasonSchema, reportStatusSchema, } from './safety.js';
27
27
  // ─── Subscription schemas ────────────────────────────────────────────────────
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gFAAgF;AAChF,OAAO;AAEL,cAAc;AACd,cAAc,EACd,sBAAsB;AAEtB,QAAQ;AACR,YAAY,EAEZ,kBAAkB,EAElB,gBAAgB,EAIhB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EAGrB,gBAAgB,EAChB,WAAW,EAEX,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACnE,gFAAgF;AAChF,OAAO,EAEL,eAAe,EAEf,oBAAoB,EAIpB,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,EAErB,gBAAgB,EAGhB,eAAe,EACf,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,GAG3B,MAAM,wBAAwB,CAAC;AAChC,gFAAgF;AAChF,OAAO,EAQL,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EAEV,UAAU,EACV,oBAAoB,EACpB,QAAQ,EACR,WAAW,EAGX,0BAA0B,EAC1B,aAAa,EACb,kBAAkB,EAElB,SAAS,GAEV,MAAM,kBAAkB,CAAC;AAC1B,gFAAgF;AAChF,OAAO,EAEL,mBAAmB,EAEnB,iBAAiB,EACjB,oBAAoB,EAEpB,oBAAoB,EAEpB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,gFAAgF;AAChF,OAAO,EACL,cAAc,EACd,MAAM,EACN,MAAM,EACN,SAAS,EAGT,UAAU,EACV,UAAU,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,UAAU,EAIV,WAAW,EACX,oBAAoB,EAEpB,cAAc,EACd,YAAY,EACZ,MAAM,GACP,MAAM,2BAA2B,CAAC;AAEnC,gFAAgF;AAChF,OAAO,EAEL,eAAe,EAIf,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,gFAAgF;AAChF,OAAO,EAEL,4BAA4B,EAE5B,wBAAwB,EAExB,YAAY,GACb,MAAM,mBAAmB,CAAC","sourcesContent":["/**\n * dating-schema — Shared Zod schemas for the Dating feature\n *\n * Single source of truth consumed by both jansathi-frontend and reform-backend.\n * Guarantees identical validation logic and TypeScript types on both sides.\n *\n * @module dating-schema\n */\n\n// ─── Common helpers and enums ────────────────────────────────────────────────\nexport {\n type AgeRange,\n // sub-schemas\n ageRangeSchema,\n emptyStringToUndefined,\n type Gender,\n // enums\n genderSchema,\n type InterestedIn,\n interestedInSchema,\n type LookingFor,\n lookingForSchema,\n type MaritalStatus,\n type MatchStatus,\n type MessageType,\n maritalStatusSchema,\n matchStatusSchema,\n messageTypeSchema,\n optionalTrimmedString,\n type Pagination,\n type Photo,\n paginationSchema,\n photoSchema,\n type SwipeAction,\n swipeActionSchema,\n} from './common.js';\nexport { getFieldMeta, getFieldOptions } from './field-helpers.js';\n// ─── Interaction schemas ─────────────────────────────────────────────────────\nexport {\n type BoostBody,\n boostBodySchema,\n type ComplimentBody,\n complimentBodySchema,\n type ImageLikeBody,\n type InteractionListQuery,\n type InteractionType,\n imageLikeBodySchema,\n interactionListQuerySchema,\n interactionTypeSchema,\n type RewindBody,\n rewindBodySchema,\n type SwipeBody,\n type SwipeResponse,\n swipeBodySchema,\n swipeResponseSchema,\n} from './interactions.js';\nexport {\n getOnboardingFieldConfig,\n ONBOARDING_FIELDS,\n ONBOARDING_STEP_GROUPS,\n ONBOARDING_TOTAL_MAIN_STEPS,\n ONBOARDING_TOTAL_SUB_STEPS,\n type OnboardingFieldConfig,\n type OnboardingStepGroup,\n} from './onboarding-config.js';\n// ─── Plan limits ─────────────────────────────────────────────────────────────\nexport {\n type BooleanFeatureKey,\n type EnumFeatureKey,\n type ExploreAccessLevel,\n type FeatureDisplayItem,\n type FeatureKey,\n type FeatureValue,\n type FilterLevel,\n getMinPlanForFeature,\n getPlanFeatureDisplay,\n getPlanLimit,\n getPlanLimits,\n hasRemainingQuota,\n isFeatureEnabled,\n isPaidPlan,\n type NumericFeatureKey,\n PAID_PLANS,\n PLAN_FEATURE_DISPLAY,\n PLAN_IDS,\n PLAN_LIMITS,\n type PlanId,\n type PlanLimits,\n PREMIUM_EXPLORE_CATEGORIES,\n PREMIUM_PLANS,\n renderFeatureValue,\n type ScoreBreakdownLevel,\n TOP_PLANS,\n type WhoLikedYouLevel,\n} from './plan-limits.js';\n// ─── Profile schemas ─────────────────────────────────────────────────────────\nexport {\n type CreateProfileInput,\n createProfileSchema,\n type FullProfileData,\n fullProfileSchema,\n getCognitiveBandRank,\n type OnboardingFormData,\n onboardingFormSchema,\n type UpdateProfileInput,\n updateProfileSchema,\n} from './profile.js';\n// ─── Profile field configs (option arrays with labels for UI rendering) ──────\nexport {\n allFieldGroups,\n basics,\n career,\n cognitive,\n type FieldGroup,\n type FieldOption,\n familyHome,\n favourites,\n financeLegal,\n healthWellness,\n heroIdentity,\n interestCategories,\n interests,\n lifestyle,\n lookingFor,\n type MultiSelectField,\n type OptionCategory,\n type ProfileField,\n personality,\n relationshipIntimacy,\n type SelectField,\n selfAssessment,\n storyPrompts,\n values,\n} from './profile-fields/index.js';\n\n// ─── Safety schemas ──────────────────────────────────────────────────────────\nexport {\n type BlockBody,\n blockBodySchema,\n type ReportBody,\n type ReportReason,\n type ReportStatus,\n reportBodySchema,\n reportReasonSchema,\n reportStatusSchema,\n} from './safety.js';\n\n// ─── Subscription schemas ────────────────────────────────────────────────────\nexport {\n type CreateSubscriptionBody,\n createSubscriptionBodySchema,\n type SubscriptionStatus,\n subscriptionStatusSchema,\n type Tenure,\n tenureSchema,\n} from './subscription.js';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gFAAgF;AAChF,OAAO;AAEL,cAAc;AACd,cAAc,EACd,sBAAsB;AAEtB,QAAQ;AACR,YAAY,EAEZ,kBAAkB,EAElB,gBAAgB,EAIhB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EAGrB,gBAAgB,EAChB,WAAW,EAEX,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACnE,gFAAgF;AAChF,OAAO,EAEL,eAAe,EAEf,oBAAoB,EAIpB,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,EAErB,gBAAgB,EAGhB,eAAe,EACf,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,GAG3B,MAAM,wBAAwB,CAAC;AAChC,gFAAgF;AAChF,OAAO,EAQL,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EAEV,UAAU,EACV,oBAAoB,EACpB,QAAQ,EACR,WAAW,EAGX,0BAA0B,EAC1B,aAAa,EACb,kBAAkB,EAElB,SAAS,GAEV,MAAM,kBAAkB,CAAC;AAC1B,gFAAgF;AAChF,OAAO,EAEL,mBAAmB,EAEnB,iBAAiB,EACjB,oBAAoB,EAEpB,oBAAoB,EAEpB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,gFAAgF;AAChF,OAAO,EACL,cAAc,EACd,MAAM,EACN,MAAM,EACN,SAAS,EAGT,UAAU,EACV,UAAU,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,UAAU,EAIV,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EAEjB,cAAc,EACd,YAAY,EACZ,MAAM,GACP,MAAM,2BAA2B,CAAC;AAEnC,gFAAgF;AAChF,OAAO,EAEL,eAAe,EAIf,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,gFAAgF;AAChF,OAAO,EAEL,4BAA4B,EAE5B,wBAAwB,EAExB,YAAY,GACb,MAAM,mBAAmB,CAAC","sourcesContent":["/**\n * dating-schema — Shared Zod schemas for the Dating feature\n *\n * Single source of truth consumed by both jansathi-frontend and reform-backend.\n * Guarantees identical validation logic and TypeScript types on both sides.\n *\n * @module dating-schema\n */\n\n// ─── Common helpers and enums ────────────────────────────────────────────────\nexport {\n type AgeRange,\n // sub-schemas\n ageRangeSchema,\n emptyStringToUndefined,\n type Gender,\n // enums\n genderSchema,\n type InterestedIn,\n interestedInSchema,\n type LookingFor,\n lookingForSchema,\n type MaritalStatus,\n type MatchStatus,\n type MessageType,\n maritalStatusSchema,\n matchStatusSchema,\n messageTypeSchema,\n optionalTrimmedString,\n type Pagination,\n type Photo,\n paginationSchema,\n photoSchema,\n type SwipeAction,\n swipeActionSchema,\n} from './common.js';\nexport { getFieldMeta, getFieldOptions } from './field-helpers.js';\n// ─── Interaction schemas ─────────────────────────────────────────────────────\nexport {\n type BoostBody,\n boostBodySchema,\n type ComplimentBody,\n complimentBodySchema,\n type ImageLikeBody,\n type InteractionListQuery,\n type InteractionType,\n imageLikeBodySchema,\n interactionListQuerySchema,\n interactionTypeSchema,\n type RewindBody,\n rewindBodySchema,\n type SwipeBody,\n type SwipeResponse,\n swipeBodySchema,\n swipeResponseSchema,\n} from './interactions.js';\nexport {\n getOnboardingFieldConfig,\n ONBOARDING_FIELDS,\n ONBOARDING_STEP_GROUPS,\n ONBOARDING_TOTAL_MAIN_STEPS,\n ONBOARDING_TOTAL_SUB_STEPS,\n type OnboardingFieldConfig,\n type OnboardingStepGroup,\n} from './onboarding-config.js';\n// ─── Plan limits ─────────────────────────────────────────────────────────────\nexport {\n type BooleanFeatureKey,\n type EnumFeatureKey,\n type ExploreAccessLevel,\n type FeatureDisplayItem,\n type FeatureKey,\n type FeatureValue,\n type FilterLevel,\n getMinPlanForFeature,\n getPlanFeatureDisplay,\n getPlanLimit,\n getPlanLimits,\n hasRemainingQuota,\n isFeatureEnabled,\n isPaidPlan,\n type NumericFeatureKey,\n PAID_PLANS,\n PLAN_FEATURE_DISPLAY,\n PLAN_IDS,\n PLAN_LIMITS,\n type PlanId,\n type PlanLimits,\n PREMIUM_EXPLORE_CATEGORIES,\n PREMIUM_PLANS,\n renderFeatureValue,\n type ScoreBreakdownLevel,\n TOP_PLANS,\n type WhoLikedYouLevel,\n} from './plan-limits.js';\n// ─── Profile schemas ─────────────────────────────────────────────────────────\nexport {\n type CreateProfileInput,\n createProfileSchema,\n type FullProfileData,\n fullProfileSchema,\n getCognitiveBandRank,\n type OnboardingFormData,\n onboardingFormSchema,\n type UpdateProfileInput,\n updateProfileSchema,\n} from './profile.js';\n// ─── Profile field configs (option arrays with labels for UI rendering) ──────\nexport {\n allFieldGroups,\n basics,\n career,\n cognitive,\n type FieldGroup,\n type FieldOption,\n familyHome,\n favourites,\n financeLegal,\n healthWellness,\n heroIdentity,\n interestCategories,\n interests,\n lifestyle,\n lookingFor,\n type MultiSelectField,\n type OptionCategory,\n type ProfileField,\n personality,\n relationshipIntimacy,\n religionCommunity,\n type SelectField,\n selfAssessment,\n storyPrompts,\n values,\n} from './profile-fields/index.js';\n\n// ─── Safety schemas ──────────────────────────────────────────────────────────\nexport {\n type BlockBody,\n blockBodySchema,\n type ReportBody,\n type ReportReason,\n type ReportStatus,\n reportBodySchema,\n reportReasonSchema,\n reportStatusSchema,\n} from './safety.js';\n\n// ─── Subscription schemas ────────────────────────────────────────────────────\nexport {\n type CreateSubscriptionBody,\n createSubscriptionBodySchema,\n type SubscriptionStatus,\n subscriptionStatusSchema,\n type Tenure,\n tenureSchema,\n} from './subscription.js';\n"]}
@@ -3,6 +3,8 @@
3
3
  * Each plan value uses { qty, text, unit? } so the frontend renders:
4
4
  * `${qty} ${text} ${unit}` → "10 compliments per day"
5
5
  * Boolean true = checkmark (show label), false = locked.
6
+ *
7
+ * 4-tier system: Lite (free) → Basic (decoy) → Premium (target) → Black (elite)
6
8
  */
7
9
  import type { FeatureDisplayItem } from './plan-limits.js';
8
10
  export declare const PLAN_FEATURE_DISPLAY_DATA: FeatureDisplayItem[];
@@ -1 +1 @@
1
- {"version":3,"file":"plan-features-data.d.ts","sourceRoot":"","sources":["../src/plan-features-data.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAgB,MAAM,kBAAkB,CAAC;AAQzE,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,EA2OzD,CAAC"}
1
+ {"version":3,"file":"plan-features-data.d.ts","sourceRoot":"","sources":["../src/plan-features-data.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAgB,MAAM,kBAAkB,CAAC;AAQzE,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,EAiOzD,CAAC"}
@@ -3,6 +3,8 @@
3
3
  * Each plan value uses { qty, text, unit? } so the frontend renders:
4
4
  * `${qty} ${text} ${unit}` → "10 compliments per day"
5
5
  * Boolean true = checkmark (show label), false = locked.
6
+ *
7
+ * 4-tier system: Lite (free) → Basic (decoy) → Premium (target) → Black (elite)
6
8
  */
7
9
  /** Shorthand helpers */
8
10
  const u = (text) => ({ qty: 'Unlimited', text });
@@ -17,10 +19,9 @@ export const PLAN_FEATURE_DISPLAY_DATA = [
17
19
  available: true,
18
20
  helpText: 'The number of profiles you can like each day. Passing left is always unlimited.',
19
21
  plans: {
20
- spark: n('50', 'likes', 'per day'),
21
- gold: n('150', 'likes', 'per day'),
22
- diamond: n('300', 'likes', 'per day'),
23
- platinum: u('likes'),
22
+ lite: n('10', 'likes', 'per day'),
23
+ basic: n('50', 'likes', 'per day'),
24
+ premium: n('300', 'likes', 'per day'),
24
25
  black: u('likes'),
25
26
  },
26
27
  },
@@ -30,10 +31,9 @@ export const PLAN_FEATURE_DISPLAY_DATA = [
30
31
  available: true,
31
32
  helpText: 'Send a compliment with a personal note to stand out. They see it even before matching with you.',
32
33
  plans: {
33
- spark: n('1', 'compliment', 'per day'),
34
- gold: n('3', 'compliments', 'per day'),
35
- diamond: n('5', 'compliments', 'per day'),
36
- platinum: n('10', 'compliments', 'per day'),
34
+ lite: n('1', 'compliment', 'per day'),
35
+ basic: n('5', 'compliments', 'per day'),
36
+ premium: n('10', 'compliments', 'per day'),
37
37
  black: u('compliments'),
38
38
  },
39
39
  },
@@ -43,10 +43,9 @@ export const PLAN_FEATURE_DISPLAY_DATA = [
43
43
  available: true,
44
44
  helpText: 'Accidentally passed on someone? Tap rewind to bring their profile back instantly.',
45
45
  plans: {
46
- spark: false,
47
- gold: u('rewinds'),
48
- diamond: u('rewinds'),
49
- platinum: u('rewinds'),
46
+ lite: false,
47
+ basic: u('rewinds'),
48
+ premium: u('rewinds'),
50
49
  black: u('rewinds'),
51
50
  },
52
51
  },
@@ -56,7 +55,7 @@ export const PLAN_FEATURE_DISPLAY_DATA = [
56
55
  label: 'Ad-free experience',
57
56
  available: true,
58
57
  helpText: 'Browse profiles, chat, and explore without any ads interrupting your experience.',
59
- plans: { spark: false, gold: true, diamond: true, platinum: true, black: true },
58
+ plans: { lite: false, basic: true, premium: true, black: true },
60
59
  },
61
60
  {
62
61
  key: 'whoLikedYou',
@@ -64,10 +63,9 @@ export const PLAN_FEATURE_DISPLAY_DATA = [
64
63
  available: true,
65
64
  helpText: 'See the list of people who already liked your profile, so you can match with them instantly.',
66
65
  plans: {
67
- spark: false,
68
- gold: d('See who likes you', '(blurred)'),
69
- diamond: d('See who', 'likes you'),
70
- platinum: d('Instant', 'like alerts'),
66
+ lite: false,
67
+ basic: d('See who likes you', '(blurred)'),
68
+ premium: d('Instant', 'like alerts'),
71
69
  black: d('Instant', 'like alerts'),
72
70
  },
73
71
  },
@@ -77,10 +75,9 @@ export const PLAN_FEATURE_DISPLAY_DATA = [
77
75
  available: true,
78
76
  helpText: 'Filter profiles by age, location, religion, education, profession, and more.',
79
77
  plans: {
80
- spark: d('Basic', 'filters'),
81
- gold: d('Advanced', 'filters'),
82
- diamond: d('All', 'filters'),
83
- platinum: d('All', 'filters'),
78
+ lite: d('Basic', 'filters'),
79
+ basic: d('Advanced', 'filters'),
80
+ premium: d('All', 'filters'),
84
81
  black: d('All', 'filters'),
85
82
  },
86
83
  },
@@ -90,10 +87,9 @@ export const PLAN_FEATURE_DISPLAY_DATA = [
90
87
  available: true,
91
88
  helpText: 'See how compatible you are with each profile based on 120+ data points across Social Fit, Personality, and Intimacy.',
92
89
  plans: {
93
- spark: n('3', 'scores', 'per day'),
94
- gold: u('scores'),
95
- diamond: u('scores'),
96
- platinum: u('scores'),
90
+ lite: n('3', 'scores', 'per day'),
91
+ basic: u('scores'),
92
+ premium: u('scores'),
97
93
  black: u('scores'),
98
94
  },
99
95
  },
@@ -103,10 +99,9 @@ export const PLAN_FEATURE_DISPLAY_DATA = [
103
99
  available: true,
104
100
  helpText: 'See the detailed breakdown across Social Fit, Personality, and Intimacy dimensions. Control which dimensions matter most in your discover feed.',
105
101
  plans: {
106
- spark: false,
107
- gold: false,
108
- diamond: false,
109
- platinum: d('Full', 'breakdown + control'),
102
+ lite: false,
103
+ basic: false,
104
+ premium: d('Full', 'breakdown + control'),
110
105
  black: d('Full', 'breakdown + control'),
111
106
  },
112
107
  },
@@ -116,10 +111,9 @@ export const PLAN_FEATURE_DISPLAY_DATA = [
116
111
  available: true,
117
112
  helpText: 'Access exclusive Explore categories like Top IIT/IIM, High IQ Dating, Elite Professionals, and more curated collections.',
118
113
  plans: {
119
- spark: false,
120
- gold: true,
121
- diamond: true,
122
- platinum: true,
114
+ lite: false,
115
+ basic: false,
116
+ premium: true,
123
117
  black: true,
124
118
  },
125
119
  },
@@ -129,10 +123,9 @@ export const PLAN_FEATURE_DISPLAY_DATA = [
129
123
  available: true,
130
124
  helpText: 'Boost your profile to the top of the discover feed for 30 minutes and get seen by more people.',
131
125
  plans: {
132
- spark: false,
133
- gold: n('1', 'boost', 'per month'),
134
- diamond: n('3', 'boosts', 'per month'),
135
- platinum: n('5', 'boosts', 'per month'),
126
+ lite: false,
127
+ basic: n('3', 'boosts', 'per month'),
128
+ premium: n('5', 'boosts', 'per month'),
136
129
  black: n('10', 'boosts', 'per month'),
137
130
  },
138
131
  },
@@ -142,7 +135,7 @@ export const PLAN_FEATURE_DISPLAY_DATA = [
142
135
  label: 'Read receipts',
143
136
  available: true,
144
137
  helpText: 'Know exactly when someone has read your message. No more guessing.',
145
- plans: { spark: false, gold: false, diamond: true, platinum: true, black: true },
138
+ plans: { lite: false, basic: false, premium: true, black: true },
146
139
  },
147
140
  {
148
141
  key: 'calls',
@@ -150,10 +143,9 @@ export const PLAN_FEATURE_DISPLAY_DATA = [
150
143
  available: false,
151
144
  helpText: 'Talk face-to-face or voice-only with your matches — directly inside the app, no phone number needed.',
152
145
  plans: {
153
- spark: false,
154
- gold: false,
155
- diamond: n('3 voice + 2 video', 'calls', 'per day'),
156
- platinum: u('calls'),
146
+ lite: false,
147
+ basic: n('3 voice + 2 video', 'calls', 'per day'),
148
+ premium: u('calls'),
157
149
  black: u('calls'),
158
150
  },
159
151
  },
@@ -162,14 +154,14 @@ export const PLAN_FEATURE_DISPLAY_DATA = [
162
154
  label: 'Voice messages in chat',
163
155
  available: false,
164
156
  helpText: 'Record and send short voice clips in chat instead of typing.',
165
- plans: { spark: false, gold: false, diamond: true, platinum: true, black: true },
157
+ plans: { lite: false, basic: true, premium: true, black: true },
166
158
  },
167
159
  {
168
160
  key: 'messageBeforeMatch',
169
161
  label: 'Send a message first',
170
162
  available: false,
171
163
  helpText: 'Introduce yourself with a message before the other person swipes on you.',
172
- plans: { spark: false, gold: false, diamond: false, platinum: true, black: true },
164
+ plans: { lite: false, basic: false, premium: true, black: true },
173
165
  },
174
166
  // ── Insights ──
175
167
  {
@@ -177,14 +169,14 @@ export const PLAN_FEATURE_DISPLAY_DATA = [
177
169
  label: 'Photo Insights',
178
170
  available: true,
179
171
  helpText: 'See which of your photos gets the most likes and attention, and get tips to improve.',
180
- plans: { spark: false, gold: false, diamond: false, platinum: true, black: true },
172
+ plans: { lite: false, basic: false, premium: true, black: true },
181
173
  },
182
174
  {
183
175
  key: 'viewContactNumber',
184
176
  label: 'View contact number',
185
177
  available: true,
186
178
  helpText: 'See the phone number of profiles who have chosen to share it. Both the user and their family contact if shared.',
187
- plans: { spark: false, gold: false, diamond: false, platinum: true, black: true },
179
+ plans: { lite: false, basic: false, premium: true, black: true },
188
180
  },
189
181
  // ── Premium perks ──
190
182
  {
@@ -192,21 +184,21 @@ export const PLAN_FEATURE_DISPLAY_DATA = [
192
184
  label: 'Incognito Mode',
193
185
  available: true,
194
186
  helpText: 'Go invisible. Your profile is hidden from everyone except the people you choose to like.',
195
- plans: { spark: false, gold: false, diamond: false, platinum: true, black: true },
187
+ plans: { lite: false, basic: false, premium: true, black: true },
196
188
  },
197
189
  {
198
190
  key: 'travelMode',
199
191
  label: 'Teleport Mode',
200
192
  available: true,
201
193
  helpText: 'Browse profiles in any city, district, or state — without physically being there.',
202
- plans: { spark: false, gold: false, diamond: false, platinum: true, black: true },
194
+ plans: { lite: false, basic: false, premium: true, black: true },
203
195
  },
204
196
  {
205
197
  key: 'seePublicBlackProfiles',
206
198
  label: 'Discover Black Circle profiles',
207
199
  available: true,
208
200
  helpText: 'See profiles of Black Circle members who have chosen to be publicly discoverable. An exclusive window into the elite community.',
209
- plans: { spark: false, gold: false, diamond: false, platinum: true, black: true },
201
+ plans: { lite: false, basic: false, premium: true, black: true },
210
202
  },
211
203
  // ── Black exclusive ──
212
204
  {
@@ -214,21 +206,21 @@ export const PLAN_FEATURE_DISPLAY_DATA = [
214
206
  label: 'The Black Circle',
215
207
  available: true,
216
208
  helpText: 'An exclusive community of celebrities, founders, and high-net-worth individuals. Your profile is only visible to other verified Black Circle members.',
217
- plans: { spark: false, gold: false, diamond: false, platinum: false, black: true },
209
+ plans: { lite: false, basic: false, premium: false, black: true },
218
210
  },
219
211
  {
220
212
  key: 'verifiedBadge',
221
213
  label: 'Verified Elite badge',
222
214
  available: true,
223
215
  helpText: 'A distinctive badge on your profile, granted after admin verification. Signals you are a verified Black Circle member.',
224
- plans: { spark: false, gold: false, diamond: false, platinum: false, black: true },
216
+ plans: { lite: false, basic: false, premium: false, black: true },
225
217
  },
226
218
  {
227
219
  key: 'vipSupport',
228
220
  label: 'Dedicated concierge',
229
221
  available: true,
230
222
  helpText: 'A personal matchmaking concierge who helps curate your matches and provides priority support.',
231
- plans: { spark: false, gold: false, diamond: false, platinum: false, black: true },
223
+ plans: { lite: false, basic: false, premium: false, black: true },
232
224
  },
233
225
  ];
234
226
  //# sourceMappingURL=plan-features-data.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan-features-data.js","sourceRoot":"","sources":["../src/plan-features-data.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Plan feature display data — separated to keep plan-limits.ts clean.\n * Each plan value uses { qty, text, unit? } so the frontend renders:\n * `${qty} ${text} ${unit}` → \"10 compliments per day\"\n * Boolean true = checkmark (show label), false = locked.\n */\n\nimport type { FeatureDisplayItem, FeatureValue } from './plan-limits.js';\n\n/** Shorthand helpers */\nconst u = (text: string): FeatureValue => ({ qty: 'Unlimited', text });\nconst n = (qty: string, text: string, unit: string): FeatureValue => ({ qty, text, unit });\nconst d = (qty: string, text: string): FeatureValue => ({ qty, text });\n\n// prettier-ignore\nexport const PLAN_FEATURE_DISPLAY_DATA: FeatureDisplayItem[] = [\n // ── Core actions ──\n {\n key: 'dailyLikes',\n label: 'Likes per day',\n available: true,\n helpText: 'The number of profiles you can like each day. Passing left is always unlimited.',\n plans: {\n spark: n('50', 'likes', 'per day'),\n gold: n('150', 'likes', 'per day'),\n diamond: n('300', 'likes', 'per day'),\n platinum: u('likes'),\n black: u('likes'),\n },\n },\n {\n key: 'dailyCompliments',\n label: 'Compliments',\n available: true,\n helpText:\n 'Send a compliment with a personal note to stand out. They see it even before matching with you.',\n plans: {\n spark: n('1', 'compliment', 'per day'),\n gold: n('3', 'compliments', 'per day'),\n diamond: n('5', 'compliments', 'per day'),\n platinum: n('10', 'compliments', 'per day'),\n black: u('compliments'),\n },\n },\n {\n key: 'dailyRewinds',\n label: 'Rewind',\n available: true,\n helpText: 'Accidentally passed on someone? Tap rewind to bring their profile back instantly.',\n plans: {\n spark: false,\n gold: u('rewinds'),\n diamond: u('rewinds'),\n platinum: u('rewinds'),\n black: u('rewinds'),\n },\n },\n // ── Visibility & discovery ──\n {\n key: 'showAds',\n label: 'Ad-free experience',\n available: true,\n helpText: 'Browse profiles, chat, and explore without any ads interrupting your experience.',\n plans: { spark: false, gold: true, diamond: true, platinum: true, black: true },\n },\n {\n key: 'whoLikedYou',\n label: 'See who likes you',\n available: true,\n helpText:\n 'See the list of people who already liked your profile, so you can match with them instantly.',\n plans: {\n spark: false,\n gold: d('See who likes you', '(blurred)'),\n diamond: d('See who', 'likes you'),\n platinum: d('Instant', 'like alerts'),\n black: d('Instant', 'like alerts'),\n },\n },\n {\n key: 'filterLevel',\n label: 'Search filters',\n available: true,\n helpText: 'Filter profiles by age, location, religion, education, profession, and more.',\n plans: {\n spark: d('Basic', 'filters'),\n gold: d('Advanced', 'filters'),\n diamond: d('All', 'filters'),\n platinum: d('All', 'filters'),\n black: d('All', 'filters'),\n },\n },\n {\n key: 'scoreVisibleProfiles',\n label: 'Compatibility scores',\n available: true,\n helpText:\n 'See how compatible you are with each profile based on 120+ data points across Social Fit, Personality, and Intimacy.',\n plans: {\n spark: n('3', 'scores', 'per day'),\n gold: u('scores'),\n diamond: u('scores'),\n platinum: u('scores'),\n black: u('scores'),\n },\n },\n {\n key: 'scoreBreakdown',\n label: 'Score breakdown & dimension control',\n available: true,\n helpText:\n 'See the detailed breakdown across Social Fit, Personality, and Intimacy dimensions. Control which dimensions matter most in your discover feed.',\n plans: {\n spark: false,\n gold: false,\n diamond: false,\n platinum: d('Full', 'breakdown + control'),\n black: d('Full', 'breakdown + control'),\n },\n },\n {\n key: 'premiumExplore',\n label: 'Premium Explore categories',\n available: true,\n helpText:\n 'Access exclusive Explore categories like Top IIT/IIM, High IQ Dating, Elite Professionals, and more curated collections.',\n plans: {\n spark: false,\n gold: true,\n diamond: true,\n platinum: true,\n black: true,\n },\n },\n {\n key: 'monthlyBoosts',\n label: 'Profile boosts',\n available: true,\n helpText:\n 'Boost your profile to the top of the discover feed for 30 minutes and get seen by more people.',\n plans: {\n spark: false,\n gold: n('1', 'boost', 'per month'),\n diamond: n('3', 'boosts', 'per month'),\n platinum: n('5', 'boosts', 'per month'),\n black: n('10', 'boosts', 'per month'),\n },\n },\n // ── Communication ──\n {\n key: 'readReceipts',\n label: 'Read receipts',\n available: true,\n helpText: 'Know exactly when someone has read your message. No more guessing.',\n plans: { spark: false, gold: false, diamond: true, platinum: true, black: true },\n },\n {\n key: 'calls',\n label: 'Voice & video calls',\n available: false,\n helpText:\n 'Talk face-to-face or voice-only with your matches — directly inside the app, no phone number needed.',\n plans: {\n spark: false,\n gold: false,\n diamond: n('3 voice + 2 video', 'calls', 'per day'),\n platinum: u('calls'),\n black: u('calls'),\n },\n },\n {\n key: 'voiceMessages',\n label: 'Voice messages in chat',\n available: false,\n helpText: 'Record and send short voice clips in chat instead of typing.',\n plans: { spark: false, gold: false, diamond: true, platinum: true, black: true },\n },\n {\n key: 'messageBeforeMatch',\n label: 'Send a message first',\n available: false,\n helpText: 'Introduce yourself with a message before the other person swipes on you.',\n plans: { spark: false, gold: false, diamond: false, platinum: true, black: true },\n },\n // ── Insights ──\n {\n key: 'photoInsights',\n label: 'Photo Insights',\n available: true,\n helpText:\n 'See which of your photos gets the most likes and attention, and get tips to improve.',\n plans: { spark: false, gold: false, diamond: false, platinum: true, black: true },\n },\n {\n key: 'viewContactNumber',\n label: 'View contact number',\n available: true,\n helpText:\n 'See the phone number of profiles who have chosen to share it. Both the user and their family contact if shared.',\n plans: { spark: false, gold: false, diamond: false, platinum: true, black: true },\n },\n // ── Premium perks ──\n {\n key: 'incognitoMode',\n label: 'Incognito Mode',\n available: true,\n helpText:\n 'Go invisible. Your profile is hidden from everyone except the people you choose to like.',\n plans: { spark: false, gold: false, diamond: false, platinum: true, black: true },\n },\n {\n key: 'travelMode',\n label: 'Teleport Mode',\n available: true,\n helpText: 'Browse profiles in any city, district, or state — without physically being there.',\n plans: { spark: false, gold: false, diamond: false, platinum: true, black: true },\n },\n {\n key: 'seePublicBlackProfiles',\n label: 'Discover Black Circle profiles',\n available: true,\n helpText:\n 'See profiles of Black Circle members who have chosen to be publicly discoverable. An exclusive window into the elite community.',\n plans: { spark: false, gold: false, diamond: false, platinum: true, black: true },\n },\n // ── Black exclusive ──\n {\n key: 'exclusiveLeague',\n label: 'The Black Circle',\n available: true,\n helpText:\n 'An exclusive community of celebrities, founders, and high-net-worth individuals. Your profile is only visible to other verified Black Circle members.',\n plans: { spark: false, gold: false, diamond: false, platinum: false, black: true },\n },\n {\n key: 'verifiedBadge',\n label: 'Verified Elite badge',\n available: true,\n helpText:\n 'A distinctive badge on your profile, granted after admin verification. Signals you are a verified Black Circle member.',\n plans: { spark: false, gold: false, diamond: false, platinum: false, black: true },\n },\n {\n key: 'vipSupport',\n label: 'Dedicated concierge',\n available: true,\n helpText:\n 'A personal matchmaking concierge who helps curate your matches and provides priority support.',\n plans: { spark: false, gold: false, diamond: false, platinum: false, black: true },\n },\n];\n"]}
1
+ {"version":3,"file":"plan-features-data.js","sourceRoot":"","sources":["../src/plan-features-data.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,wBAAwB;AACxB,MAAM,CAAC,GAAG,CAAC,IAAY,EAAgB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AACvE,MAAM,CAAC,GAAG,CAAC,GAAW,EAAE,IAAY,EAAE,IAAY,EAAgB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3F,MAAM,CAAC,GAAG,CAAC,GAAW,EAAE,IAAY,EAAgB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AAEvE,kBAAkB;AAClB,MAAM,CAAC,MAAM,yBAAyB,GAAyB;IAC7D,qBAAqB;IACrB;QACE,GAAG,EAAE,YAAY;QACjB,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,iFAAiF;QAC3F,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC;YACjC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC;YAClC,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC;YACrC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC;SAClB;KACF;IACD;QACE,GAAG,EAAE,kBAAkB;QACvB,KAAK,EAAE,aAAa;QACpB,SAAS,EAAE,IAAI;QACf,QAAQ,EACN,iGAAiG;QACnG,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,YAAY,EAAE,SAAS,CAAC;YACrC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,CAAC;YACvC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,CAAC;YAC1C,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC;SACxB;KACF;IACD;QACE,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,mFAAmF;QAC7F,KAAK,EAAE;YACL,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC;YACnB,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC;YACrB,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC;SACpB;KACF;IACD,+BAA+B;IAC/B;QACE,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,kFAAkF;QAC5F,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;KAChE;IACD;QACE,GAAG,EAAE,aAAa;QAClB,KAAK,EAAE,mBAAmB;QAC1B,SAAS,EAAE,IAAI;QACf,QAAQ,EACN,8FAA8F;QAChG,KAAK,EAAE;YACL,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,CAAC,CAAC,mBAAmB,EAAE,WAAW,CAAC;YAC1C,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC;YACpC,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC;SACnC;KACF;IACD;QACE,GAAG,EAAE,aAAa;QAClB,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,8EAA8E;QACxF,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC;YAC3B,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC;YAC/B,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC;YAC5B,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC;SAC3B;KACF;IACD;QACE,GAAG,EAAE,sBAAsB;QAC3B,KAAK,EAAE,sBAAsB;QAC7B,SAAS,EAAE,IAAI;QACf,QAAQ,EACN,sHAAsH;QACxH,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC;YACjC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC;YAClB,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC;YACpB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC;SACnB;KACF;IACD;QACE,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,qCAAqC;QAC5C,SAAS,EAAE,IAAI;QACf,QAAQ,EACN,iJAAiJ;QACnJ,KAAK,EAAE;YACL,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,qBAAqB,CAAC;YACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,qBAAqB,CAAC;SACxC;KACF;IACD;QACE,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,4BAA4B;QACnC,SAAS,EAAE,IAAI;QACf,QAAQ,EACN,0HAA0H;QAC5H,KAAK,EAAE;YACL,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;SACZ;KACF;IACD;QACE,GAAG,EAAE,eAAe;QACpB,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,IAAI;QACf,QAAQ,EACN,gGAAgG;QAClG,KAAK,EAAE;YACL,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,CAAC;YACpC,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,CAAC;YACtC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC;SACtC;KACF;IACD,sBAAsB;IACtB;QACE,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,oEAAoE;QAC9E,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;KACjE;IACD;QACE,GAAG,EAAE,OAAO;QACZ,KAAK,EAAE,qBAAqB;QAC5B,SAAS,EAAE,KAAK;QAChB,QAAQ,EACN,sGAAsG;QACxG,KAAK,EAAE;YACL,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,CAAC,CAAC,mBAAmB,EAAE,OAAO,EAAE,SAAS,CAAC;YACjD,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC;YACnB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC;SAClB;KACF;IACD;QACE,GAAG,EAAE,eAAe;QACpB,KAAK,EAAE,wBAAwB;QAC/B,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,8DAA8D;QACxE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;KAChE;IACD;QACE,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,sBAAsB;QAC7B,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,0EAA0E;QACpF,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;KACjE;IACD,iBAAiB;IACjB;QACE,GAAG,EAAE,eAAe;QACpB,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,IAAI;QACf,QAAQ,EACN,sFAAsF;QACxF,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;KACjE;IACD;QACE,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,qBAAqB;QAC5B,SAAS,EAAE,IAAI;QACf,QAAQ,EACN,iHAAiH;QACnH,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;KACjE;IACD,sBAAsB;IACtB;QACE,GAAG,EAAE,eAAe;QACpB,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,IAAI;QACf,QAAQ,EACN,0FAA0F;QAC5F,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;KACjE;IACD;QACE,GAAG,EAAE,YAAY;QACjB,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,mFAAmF;QAC7F,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;KACjE;IACD;QACE,GAAG,EAAE,wBAAwB;QAC7B,KAAK,EAAE,gCAAgC;QACvC,SAAS,EAAE,IAAI;QACf,QAAQ,EACN,iIAAiI;QACnI,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;KACjE;IACD,wBAAwB;IACxB;QACE,GAAG,EAAE,iBAAiB;QACtB,KAAK,EAAE,kBAAkB;QACzB,SAAS,EAAE,IAAI;QACf,QAAQ,EACN,uJAAuJ;QACzJ,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;KAClE;IACD;QACE,GAAG,EAAE,eAAe;QACpB,KAAK,EAAE,sBAAsB;QAC7B,SAAS,EAAE,IAAI;QACf,QAAQ,EACN,wHAAwH;QAC1H,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;KAClE;IACD;QACE,GAAG,EAAE,YAAY;QACjB,KAAK,EAAE,qBAAqB;QAC5B,SAAS,EAAE,IAAI;QACf,QAAQ,EACN,+FAA+F;QACjG,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;KAClE;CACF,CAAC","sourcesContent":["/**\n * Plan feature display data — separated to keep plan-limits.ts clean.\n * Each plan value uses { qty, text, unit? } so the frontend renders:\n * `${qty} ${text} ${unit}` → \"10 compliments per day\"\n * Boolean true = checkmark (show label), false = locked.\n *\n * 4-tier system: Lite (free) → Basic (decoy) → Premium (target) → Black (elite)\n */\n\nimport type { FeatureDisplayItem, FeatureValue } from './plan-limits.js';\n\n/** Shorthand helpers */\nconst u = (text: string): FeatureValue => ({ qty: 'Unlimited', text });\nconst n = (qty: string, text: string, unit: string): FeatureValue => ({ qty, text, unit });\nconst d = (qty: string, text: string): FeatureValue => ({ qty, text });\n\n// prettier-ignore\nexport const PLAN_FEATURE_DISPLAY_DATA: FeatureDisplayItem[] = [\n // ── Core actions ──\n {\n key: 'dailyLikes',\n label: 'Likes per day',\n available: true,\n helpText: 'The number of profiles you can like each day. Passing left is always unlimited.',\n plans: {\n lite: n('10', 'likes', 'per day'),\n basic: n('50', 'likes', 'per day'),\n premium: n('300', 'likes', 'per day'),\n black: u('likes'),\n },\n },\n {\n key: 'dailyCompliments',\n label: 'Compliments',\n available: true,\n helpText:\n 'Send a compliment with a personal note to stand out. They see it even before matching with you.',\n plans: {\n lite: n('1', 'compliment', 'per day'),\n basic: n('5', 'compliments', 'per day'),\n premium: n('10', 'compliments', 'per day'),\n black: u('compliments'),\n },\n },\n {\n key: 'dailyRewinds',\n label: 'Rewind',\n available: true,\n helpText: 'Accidentally passed on someone? Tap rewind to bring their profile back instantly.',\n plans: {\n lite: false,\n basic: u('rewinds'),\n premium: u('rewinds'),\n black: u('rewinds'),\n },\n },\n // ── Visibility & discovery ──\n {\n key: 'showAds',\n label: 'Ad-free experience',\n available: true,\n helpText: 'Browse profiles, chat, and explore without any ads interrupting your experience.',\n plans: { lite: false, basic: true, premium: true, black: true },\n },\n {\n key: 'whoLikedYou',\n label: 'See who likes you',\n available: true,\n helpText:\n 'See the list of people who already liked your profile, so you can match with them instantly.',\n plans: {\n lite: false,\n basic: d('See who likes you', '(blurred)'),\n premium: d('Instant', 'like alerts'),\n black: d('Instant', 'like alerts'),\n },\n },\n {\n key: 'filterLevel',\n label: 'Search filters',\n available: true,\n helpText: 'Filter profiles by age, location, religion, education, profession, and more.',\n plans: {\n lite: d('Basic', 'filters'),\n basic: d('Advanced', 'filters'),\n premium: d('All', 'filters'),\n black: d('All', 'filters'),\n },\n },\n {\n key: 'scoreVisibleProfiles',\n label: 'Compatibility scores',\n available: true,\n helpText:\n 'See how compatible you are with each profile based on 120+ data points across Social Fit, Personality, and Intimacy.',\n plans: {\n lite: n('3', 'scores', 'per day'),\n basic: u('scores'),\n premium: u('scores'),\n black: u('scores'),\n },\n },\n {\n key: 'scoreBreakdown',\n label: 'Score breakdown & dimension control',\n available: true,\n helpText:\n 'See the detailed breakdown across Social Fit, Personality, and Intimacy dimensions. Control which dimensions matter most in your discover feed.',\n plans: {\n lite: false,\n basic: false,\n premium: d('Full', 'breakdown + control'),\n black: d('Full', 'breakdown + control'),\n },\n },\n {\n key: 'premiumExplore',\n label: 'Premium Explore categories',\n available: true,\n helpText:\n 'Access exclusive Explore categories like Top IIT/IIM, High IQ Dating, Elite Professionals, and more curated collections.',\n plans: {\n lite: false,\n basic: false,\n premium: true,\n black: true,\n },\n },\n {\n key: 'monthlyBoosts',\n label: 'Profile boosts',\n available: true,\n helpText:\n 'Boost your profile to the top of the discover feed for 30 minutes and get seen by more people.',\n plans: {\n lite: false,\n basic: n('3', 'boosts', 'per month'),\n premium: n('5', 'boosts', 'per month'),\n black: n('10', 'boosts', 'per month'),\n },\n },\n // ── Communication ──\n {\n key: 'readReceipts',\n label: 'Read receipts',\n available: true,\n helpText: 'Know exactly when someone has read your message. No more guessing.',\n plans: { lite: false, basic: false, premium: true, black: true },\n },\n {\n key: 'calls',\n label: 'Voice & video calls',\n available: false,\n helpText:\n 'Talk face-to-face or voice-only with your matches — directly inside the app, no phone number needed.',\n plans: {\n lite: false,\n basic: n('3 voice + 2 video', 'calls', 'per day'),\n premium: u('calls'),\n black: u('calls'),\n },\n },\n {\n key: 'voiceMessages',\n label: 'Voice messages in chat',\n available: false,\n helpText: 'Record and send short voice clips in chat instead of typing.',\n plans: { lite: false, basic: true, premium: true, black: true },\n },\n {\n key: 'messageBeforeMatch',\n label: 'Send a message first',\n available: false,\n helpText: 'Introduce yourself with a message before the other person swipes on you.',\n plans: { lite: false, basic: false, premium: true, black: true },\n },\n // ── Insights ──\n {\n key: 'photoInsights',\n label: 'Photo Insights',\n available: true,\n helpText:\n 'See which of your photos gets the most likes and attention, and get tips to improve.',\n plans: { lite: false, basic: false, premium: true, black: true },\n },\n {\n key: 'viewContactNumber',\n label: 'View contact number',\n available: true,\n helpText:\n 'See the phone number of profiles who have chosen to share it. Both the user and their family contact if shared.',\n plans: { lite: false, basic: false, premium: true, black: true },\n },\n // ── Premium perks ──\n {\n key: 'incognitoMode',\n label: 'Incognito Mode',\n available: true,\n helpText:\n 'Go invisible. Your profile is hidden from everyone except the people you choose to like.',\n plans: { lite: false, basic: false, premium: true, black: true },\n },\n {\n key: 'travelMode',\n label: 'Teleport Mode',\n available: true,\n helpText: 'Browse profiles in any city, district, or state — without physically being there.',\n plans: { lite: false, basic: false, premium: true, black: true },\n },\n {\n key: 'seePublicBlackProfiles',\n label: 'Discover Black Circle profiles',\n available: true,\n helpText:\n 'See profiles of Black Circle members who have chosen to be publicly discoverable. An exclusive window into the elite community.',\n plans: { lite: false, basic: false, premium: true, black: true },\n },\n // ── Black exclusive ──\n {\n key: 'exclusiveLeague',\n label: 'The Black Circle',\n available: true,\n helpText:\n 'An exclusive community of celebrities, founders, and high-net-worth individuals. Your profile is only visible to other verified Black Circle members.',\n plans: { lite: false, basic: false, premium: false, black: true },\n },\n {\n key: 'verifiedBadge',\n label: 'Verified Elite badge',\n available: true,\n helpText:\n 'A distinctive badge on your profile, granted after admin verification. Signals you are a verified Black Circle member.',\n plans: { lite: false, basic: false, premium: false, black: true },\n },\n {\n key: 'vipSupport',\n label: 'Dedicated concierge',\n available: true,\n helpText:\n 'A personal matchmaking concierge who helps curate your matches and provides priority support.',\n plans: { lite: false, basic: false, premium: false, black: true },\n },\n];\n"]}
@@ -4,6 +4,8 @@
4
4
  * Single source of truth for feature gating by pricing plan.
5
5
  * Both backend middleware and frontend UI read from this config.
6
6
  *
7
+ * 4-tier system: Lite (free) → Basic (decoy) → Premium (target) → Black (elite)
8
+ *
7
9
  * To add/remove a gated feature:
8
10
  * 1. Add/remove the key in PlanLimits interface
9
11
  * 2. Set values for each plan in PLAN_LIMITS
@@ -12,8 +14,8 @@
12
14
  *
13
15
  * @module dating-schema/plan-limits
14
16
  */
15
- /** The 5 pricing plans. Black is the exclusive celebrity/HNI tier. */
16
- export type PlanId = 'spark' | 'gold' | 'diamond' | 'platinum' | 'black';
17
+ /** The 4 pricing plans. Black is the exclusive celebrity/HNI tier. */
18
+ export type PlanId = 'lite' | 'basic' | 'premium' | 'black';
17
19
  /** Filter capability levels by plan. */
18
20
  export type FilterLevel = 'basic' | 'advanced' | 'full';
19
21
  /** "Who liked you" visibility levels by plan. */
@@ -66,15 +68,15 @@ export interface PlanLimits {
66
68
  export declare const PLAN_LIMITS: Record<PlanId, PlanLimits>;
67
69
  /** All valid plan IDs in tier order. */
68
70
  export declare const PLAN_IDS: PlanId[];
69
- /** Paid plans (Gold and above). */
71
+ /** Paid plans (Basic and above). */
70
72
  export declare const PAID_PLANS: PlanId[];
71
- /** Premium plans (Diamond and above). */
73
+ /** Premium plans (Premium and above). */
72
74
  export declare const PREMIUM_PLANS: PlanId[];
73
- /** Top-tier plans (Platinum and Black). */
75
+ /** Top-tier plans (Black only). */
74
76
  export declare const TOP_PLANS: PlanId[];
75
- /** Check if a plan is paid (not Spark). */
77
+ /** Check if a plan is paid (not Lite). */
76
78
  export declare function isPaidPlan(planId: PlanId): boolean;
77
- /** Premium explore categories that require Gold+ to access. */
79
+ /** Premium explore categories that require Premium+ to access. */
78
80
  export declare const PREMIUM_EXPLORE_CATEGORIES: readonly ["high-iq", "elite-institute", "nri-dating", "senior-dating", "lgbtq", "second-innings"];
79
81
  /** How a feature appears in UI — per-plan value can be a string (quantity), true (check), or false (locked). */
80
82
  /** Structured value for numeric/descriptive plan features */
@@ -1 +1 @@
1
- {"version":3,"file":"plan-limits.d.ts","sourceRoot":"","sources":["../src/plan-limits.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-limits.d.ts","sourceRoot":"","sources":["../src/plan-limits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,sEAAsE;AACtE,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAE5D,wCAAwC;AACxC,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAExD,iDAAiD;AACjD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;AAExE,8CAA8C;AAC9C,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,CAAC;AAErD,wDAAwD;AACxD,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;AAEjE,6EAA6E;AAC7E,MAAM,MAAM,iBAAiB,GACzB,YAAY,GACZ,kBAAkB,GAClB,cAAc,GACd,oBAAoB,GACpB,uBAAuB,GACvB,eAAe,GACf,iBAAiB,GACjB,iBAAiB,GACjB,sBAAsB,GACtB,sBAAsB,GACtB,sBAAsB,GACtB,sBAAsB,CAAC;AAE3B,kDAAkD;AAClD,MAAM,MAAM,iBAAiB,GACzB,cAAc,GACd,eAAe,GACf,eAAe,GACf,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,mBAAmB,GACnB,oBAAoB,GACpB,YAAY,GACZ,sBAAsB,GACtB,eAAe,GACf,mBAAmB,GACnB,iBAAiB,GACjB,wBAAwB,CAAC;AAE7B,oCAAoC;AACpC,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAEhG,mDAAmD;AACnD,MAAM,MAAM,UAAU,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,cAAc,CAAC;AAEhF,uCAAuC;AACvC,MAAM,WAAW,UAAU;IAEzB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IAEtB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAG7B,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,aAAa,EAAE,kBAAkB,CAAC;IAClC,cAAc,EAAE,mBAAmB,CAAC;IAGpC,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAID,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAoJzC,CAAC;AAIX,wCAAwC;AACxC,eAAO,MAAM,QAAQ,EAAE,MAAM,EAA0C,CAAC;AAExE,oCAAoC;AACpC,eAAO,MAAM,UAAU,EAAE,MAAM,EAAkC,CAAC;AAElE,yCAAyC;AACzC,eAAO,MAAM,aAAa,EAAE,MAAM,EAAyB,CAAC;AAE5D,mCAAmC;AACnC,eAAO,MAAM,SAAS,EAAE,MAAM,EAAc,CAAC;AAE7C,0CAA0C;AAC1C,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,kEAAkE;AAClE,eAAO,MAAM,0BAA0B,mGAO7B,CAAC;AAIX,gHAAgH;AAChH,6DAA6D;AAC7D,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,GAAG,EAAE,MAAM,CAAC;IACZ,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,4FAA4F;IAC5F,SAAS,EAAE,OAAO,CAAC;IACnB,+FAA+F;IAC/F,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC;CAC/C;AAED,6DAA6D;AAC7D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMvF;AAED;;;GAGG;AACH,OAAO,EAAE,yBAAyB,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE5F;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG;IACrD,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC;IACnF,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC5D,CAwBA;AAID,wCAAwC;AACxC,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAExD;AAED,uDAAuD;AACvD,wBAAgB,YAAY,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAE5F;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAEpF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,EAC1B,YAAY,EAAE,MAAM,GACnB,OAAO,CAGT;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAEnF"}